利用SQL未公开的存储过程实现分页

  
if     exists    ( select     *     from    dbo.sysobjects    where    id    =     object_id (N ' [dbo].[p_splitpage] ' )    and     OBJECTPROPERTY (id,   N ' IsProcedure ' )    =     1 )   
  
drop     procedure     [ dbo ] . [ p_splitpage ]    
  
GO    
    
  
-- 利用SQL未公开的存储过程实现分页   
   create     procedure    p_splitpage         
  
@sql     nvarchar ( 4000 ),  -- 要执行的sql语句   
   @currentpage     int = 2 ,    -- 要显示的页码   
   @pagesize     int = 10 -- 每页的大小   
   @recordcount     int = 0    out,  -- 记录数   
   @pagecount     int = 0    out  -- 总页数   
   as    
  
set    nocount    on    
  
declare     @p1     int    
    
  
exec    sp_cursoropen    @p1    output, @sql , @scrollopt = 1 , @ccopt = 1 , @rowcount = @pagecount    output   
    
  
select     @recordcount = @pagecount , @pagecount = ceiling ( 1.0 * @pagecount / @pagesize )       , @currentpage = ( @currentpage - 1 ) * @pagesize + 1        
  
select     @recordcount    recordcount   , @pagecount      pagecount, @currentpage      currentpage   
  
exec    sp_cursorfetch    @p1 , 16 , @currentpage , @pagesize      
  
exec    sp_cursorclose    @p1    
  
go    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值