SQL通用版分页存储过程

分页存储过程有很多种,但是这个分页存储过程效率高一些。下面为我所写的一个通用版的分页存储过程。直接调用就行,表明自己传参进去就行。
alter proc divide_page
          @pagesize int=10,--页大小
          @pagenum int=0, --页号
          @rowcount int=0 output,--总行数
	  @tb_name nvarchar(50)=''--表名
as
begin
   declare @SQL nvarchar(255),@SQLcount nvarchar(255),@first nvarchar(50),@last nvarchar(50)
   set @first=cast(((@pagenum-1)*@pagesize) as nvarchar(50))
   set @last=cast((@pagenum*@pagesize-1)  as nvarchar(50))
   set @SQLcount='select @rowcount=count(Id) from '+@tb_name
   set @SQL='select * from ( select ROW_NUMBER() over (order by Id) as rownum,* from ' + @tb_name + ') as t where t.rownum between ' + @first+ ' and '+@last
   exec sp_executesql @SQLcount,N'@rowcount int output',@rowcount  output
   exec sp_executesql @SQL
end
下面是调用该存储的一个方法,最主要的就是参数写对就可以了,在这里就不多说了。
declare @rowco int 
exec divide_page 10,2,@rowco,'BOOK'
print @rowco





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值