天天看点

分页存储过程

IF EXISTS(SELECT Name FROM SYSOBJECTS WHERE Name='PrcPager' AND TYPE='P')

DROP PROCEDURE PrcPager

GO

CREATE PROCEDURE PrcPager

-- 获得某一页的数据 --

@currPage int = 1, --当前页页码 (即Top currPage)

@showColumn varchar(2000) = '*', --需要得到的字段 (即 column1,column2,......)

@tabName varchar(2000), --需要查看的表名 (即 from table_name)

@strCondition varchar(2000) = '', --查询条件 (即 where condition......) 不用加where关键字

@ascColumn varchar(100) = '', --排序的字段名 (即 order by column asc/desc)

@bitOrderType bit = 0, ---排序的类型 (0为升序,1为降序)

@pkColumn varchar(100) = '', --主键名称

@pageSize int = 20 --分页大小

AS

BEGIN -- 存储过程开始

-- 该存储过程需要用到的几个变量

DECLARE @strSql varchar(4000) --该存储过程最后执行的语句

DECLARE @strOrderType varchar(1000) --排序类型语句 (order by column asc或者order by column desc)

BEGIN

IF @bitOrderType = 1 -- bitOrderType=1即执行降序

END

ELSE

IF @currPage = 1 -- 如果是第一页

IF @strCondition != ''

ELSE -- 其他页

IF @strCondition !=''

EXEC (@strSql)

--print @strSql

END -- 存储过程结束