适合大部分的存储过程分页

适合大部分的存储过程分页,个人认为不错,比较通用,只是不能排序,统计,收藏起来
--------p_splitpage
ALTER procedure [dbo].[p_splitpage]   
    
@sql varchar(8000), --要执行的sql语句
    @page int=1--要显示的页码
    @pageSize int--每页的大小
    @pageCount int=0 out, --总页数
    @recordCount int=0 out --总记录数
as
begin
    
set nocount on
    
declare @p1 int
    
exec sp_cursoropen @p1 output,@sql,@scrollopt=1,@ccopt=1,@rowcount=@pagecount output
    
set @recordCount = @pageCount
    
select @pagecount=ceiling(1.0*@pagecount/@pagesize),@page=(@page-1)*@pagesize+1
    
exec sp_cursorfetch @p1,16,@page,@pagesize 
    
exec sp_cursorclose @p1
    
select @pageCount,@recordCount
end    
posted @ 2007-12-25 16:01  吾爱乐乐  阅读(482)  评论(2编辑  收藏  举报