SQLServer 通用分页存储过程(使用游标)

SQL代码
  1. ----------------------------------------------------------------------   
  2. -- 通用分页存储过程   
  3. ----------------------------------------------------------------------   
  4. CREATE PROCEDURE [dbo].[cmsdream_SP_MultiPage](   
  5.     @sql varchar(8000)='',   
  6.     @PageSize int=1,   
  7.     @CurrentPage int=1,   
  8.     @RecordCount int=0 output,   
  9.     @PageCount int=1 output  
  10. )AS  
  11. if @PageSize < 1 set @PageSize = 1   
  12. if @CurrentPage < 1 set @CurrentPage = 1   
  13. begin  
  14.     set nocount on  
  15.   
  16.     declare @p1 int,   
  17.     @rowcount int  
  18.     exec sp_cursoropen @p1 output,@sql,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output  
  19.     set @PageCount = ceiling(1.0 * @rowcount / @PageSize)      
  20.     set @CurrentPage = (@CurrentPage - 1) * @PageSize + 1   
  21.     set @RecordCount = @rowcount   
  22.     exec sp_cursorfetch @p1, 16, @CurrentPage, @PageSize   
  23.     set nocount off  
  24. end  
  25.   
  26.   
  27. GO  
引用通告地址: 点击获取引用地址
标签: 存储过程 sql 游标
评论: 0 | 引用: 0 | 阅读: 702 | 打印 | 打包
发表评论
昵 称: 密 码:
网 址: 邮 箱:
验证码: 验证码图片 选 项:
头 像:
内 容: