通用存储过程分页

 

alter PROCEDURE pager
@tblname varchar(100),--表名
@pkname  varchar(100),--主键名称
@pgsize  int,--每页数据大小
@pg   int,--当前页码
@Col_list varchar(Max)=null,--不为空,以英文逗号(,)开始
@Filter varchar(Max)=null,--不为空,以where开始 ……
@sortColumn varchar(500)=null,--不为空,以Order by开始
@totalcount int output
as
declare @toid int,@tid int,
@strsql varchar(200),@sql nvarchar(200)
set @sql = 'select @Rcount=count(' + @pkname +') from ' + @tblname
exec sp_executesql @sql,N'@Rcount int output',@totalcount output
set @toid=(@pg-1)*@pgsize + 1
set @tid = @pg * @pgsize
--以下只是都不为空的时候,其余7中自行书写代码
if @Filter != null and @sortColumn!=null and @Col_list!=null
begin
set @strsql = 'select * from(select row_number() Over(Order By '+@pkname+' Desc) as rownum'+  @Col_list+' from '+@tblname + ' ' + @Filter + ' ' + @sortColumn +') as D  where rownum between ' + Cast(@toid as varchar+ ' and ' + cast(@tid as varchar)
end
exec (@strsql)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值