分页存储过程(效率高,试过100万的数据,1000万就没说过)

CREATE procedure cursorPage
@sqlstr   nvarchar(4000),   --查询字符串  
  @currentpage   int,   --第N页  
  @pagesize   int   --每页行数  
  as  
  set   nocount   on  
  declare   @P1   int,   --P1是游标的id  
    @rowcount   int  
  exec   sp_cursoropen   @P1   output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount   output  
  select   ceiling(1.0*@rowcount/@pagesize)   as   总页数,@rowcount   as   总行数,@currentpage   as   当前页    
  set   @currentpage=(@currentpage-1)*@pagesize+1  
  exec   sp_cursorfetch   @P1,16,@currentpage,@pagesize    
  exec   sp_cursorclose   @P1  
  set   nocount   off   

GO

调用:示例exec cursorPage 'select * from dingdan','1','10' 
如图:
asp.net中取数据集DataSet的table[2]表就是数据了

转载于:https://www.cnblogs.com/fengzhenxin1984/archive/2009/08/11/1543548.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值