SQL Server:使用系统存储过程实现的通用分页存储过程

ContractedBlock.gif ExpandedBlockStart.gif 代码
CREATE   PROC  sp_PageView   
@sql           ntext ,      -- 要执行的sql语句
@PageCurrent   int = 1 ,      -- 要显示的页码
@PageSize      int = 10 ,     -- 每页的大小
@PageCount     int  OUTPUT  -- 总页数
AS
SET  NOCOUNT  ON
DECLARE   @p1   int
-- 初始化分页游标
EXEC  sp_cursoropen 
    
@cursor = @p1  OUTPUT,
    
@stmt = @sql ,
    
@scrollopt = 1 ,
    
@ccopt = 1 ,
    
@rowcount = @PageCount  OUTPUT

-- 计算总页数
IF   ISNULL ( @PageSize , 0 ) < 1  
    
SET   @PageSize = 10
SET   @PageCount = ( @PageCount + @PageSize - 1 ) / @PageSize
IF   ISNULL ( @PageCurrent , 0 ) < 1   OR   ISNULL ( @PageCurrent , 0 ) > @PageCount
    
SET   @PageCurrent = 1
ELSE
    
SET   @PageCurrent = ( @PageCurrent - 1 ) * @PageSize + 1

-- 显示指定页的数据
EXEC  sp_cursorfetch  @p1 , 16 , @PageCurrent , @PageSize

-- 关闭分页游标
EXEC  sp_cursorclose  @p1

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值