SQL内部分页

1 )只需要提供Sql语句和每页的记录数,页数就可以了    
2 )速度超快哟,100W记录1 ~ 3秒就分出来了    
3 )对于存储过程特别好用    
-- //调用的方式    
表    
exec  up_zbh_DivPageBySql  ' select * from 表 ' , 10 , 3     
存储过程    
exec  up_zbh_DivPageBySql  ' exec 存储过程 ' , 10 , 1      
   
-- //我吧它封装成一个存储过程,调用的时候方便的很哈!!    
   
   
alter   procedure  Sp_DivPageBySql    
 
@strSql   varchar ( 8000 ),    
 
@nPageSize   int , -- 每页记录数    
  @nPageNo   int -- 第x页    
as    
/*     
调用方法:Exec Sp_DivPageBySql 'select * from td_dwzl order by E0',20,3    
*/     
    
SET  NOCOUNT  ON      
    
DECLARE   @P1   INT @nRowCount   INT , @nStartRecNo   Int      
   
    
-- //注意:@scrollopt = 1 会取得Select的时候的总行数    
     EXEC  sp_cursoropen  @P1  OUTPUT,  @strSql @scrollopt   =   2 @ccopt   =   335873 @rowcount   =   @nRowCount  OUTPUT   
    
Print   @nRowCount     
   
    
IF  ( @P1   !=   0 )    
    
BEGIN    
 
-- SELECT @nRowCount AS nRecordCount, ceiling(1.0 * @nRowCount / @nPageSize) AS nPageCount, @nPageCount AS nPage    
  SET   @nStartRecNo   =  ( @nPageNo   -   1 *   @nPageSize   +   1      
 
EXEC  sp_cursorfetch  @P1 32 @nStartRecNo @nPageSize       
 
EXEC  sp_cursorclose  @P1     
    
END    
   
-- //调用的方式    
表    
exec  up_zbh_DivPageBySql  ' select * from 表 ' , 10 , 3     
存储过程    
exec  up_zbh_DivPageBySql  ' exec 存储过程 ' , 10 , 1     

转载于:https://www.cnblogs.com/mengzi/archive/2009/03/30/1425172.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值