sql 通用分页存储过程

sql 2005版本以上..
/******************************************************************
**檔案名:            P_PageData
**Copyright(c)          
**創建人:          
**創建日期:           
**修改人:         
**最後修改日期:       
**修改原因:
**描述:                分頁取得dataset數據
**輸入:                查尋的sql語句,當前頁,每頁行數
**輸出:               
記錄集1            (空sql結果集的結構),
記錄集2            (總條數Total,總頁數PageCount,當前頁CurPage),
記錄集3            (sql查詢返回的內容)
******************************************************************/
create PROCEDURE [dbo].[P_PageData]
@sqlstr nvarchar(3500),     --SQL字串
@curpage int,        --第N頁
@pagesize int        --每頁行數
AS
begin

set nocount on
declare @P1 int,        --P1是遊標的id
        @rowcount int, @pagecount int
SET @sqlstr = RTRIM(@sqlstr)
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
set @pagecount = ceiling(1.0*@rowcount/@pagesize)
if @curpage<=1
    set @curpage =1
if @curpage>@pagecount
    set @curpage=@pagecount
select @rowcount as Total, @pagecount as PageCount,@curpage as CurPage   
set @curpage=(@curpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@curpage,@pagesize
exec sp_cursorclose @P1
end









 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kingboyrang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值