首页 新闻 会员 周边

求解释一个sql分页存储过程

0
悬赏园豆:5 [待解决问题]


create proc [dbo].[UP_Pager]
@sql nvarchar(4000),
@pagesize int=10,
@currentpage int=1,
@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

IF ISNULL(@pagesize, 0) < 1 SET @pagesize = 10

SELECT @recordcount=@pagecount,@pagecount=ceiling(1.0*@pagecount/@pagesize),@currentpage=(@currentpage-1)*@pagesize+1
SELECT @recordcount recordcount ,@pagecount pagecount
EXEC sp_cursorfetch @p1,16,@currentpage,@pagesize
EXEC sp_cursorclose @p1
GO

这个是一个分页的存储过程  其中用到了游标  但是本人对游标不懂哎    为什么这个存储过程会返回三个集合   是因为这三个游标都会返回数据吗   求解释

①尘不染的主页 ①尘不染 | 初学一级 | 园豆:11
提问于:2013-05-31 11:26
< >
分享
所有回答(2)
0

很简单啊,跑一下就知道结果了。因为只要有select的地方就返回了集合,SELECT @recordcount recordcount ,@pagecount pagecount 是多余的。因为已经有out类型的参数了。

数据酷软件 | 园豆:130 (初学一级) | 2013-06-01 21:22
0

你参看以下文章:http://www.cnblogs.com/ngnetboy/archive/2012/07/28/2612917.html

这个存储过程实现分页比较容易理解

伏草惟存 | 园豆:1420 (小虾三级) | 2013-06-02 19:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册