sql server中分页获取数据的存储过程

用的sql server的API,效率上就不知道了。有兴趣的朋友可以帮忙测试一下,顺便告诉我一下,谢谢~ 
命名上本应用sp_,但sql server的API都是sp_打头的,据说这个前缀会先在API里面寻找,性能下降。想来想去也不愿意多打字母,就用xp_了。该存储过程可以配合昨天发的数据库访问类使用。

CREATE PROCEDURE dbo.xp_GetPage
(
    @sql 
varchar(1000),
    @page 
int = 1,
    @pageSize 
int = 20,
    @needCount 
bit = 1
)
AS
    
SET NOCOUNT ON
    
DECLARE @P1 int    --P1是游标的id

    
SET @page = (@page-1* @pagesize + 1
    
EXEC sp_cursoropen @P1 output,@sql
    
EXEC sp_cursorfetch @P1, 16, @page, @pagesize
    
EXEC sp_cursorclose @P1

    
--上面的就够了,下面的代码是为了统计总记录条数
     select @RowCount


GO


欢迎批评、指正、讨论。 



---------------------------

http://www.cnblogs.com/squirrel_sc

1. 如有引用,请包含本段文字及原始出处。以表示对作者的尊重,且能将有相似想法的人联系起来。

2. 如无特殊说明,本文的文字代表作者的观点和想法。由于人类的记忆和连通性的限制,可能会将别人的观点和想法当成自己的(会尽量避免,但我读书少,别蒙我:D);或有人会有同样的想法(那就太好了)。若有此类情况,请联系我。我会很高兴更新内容。

3. 每篇文章会根据反馈或新的想法,随时更新。我会尽量记得更新版本号。

posted @ 2004-09-28 08:59  squirrel_sc  阅读(3497)  评论(7编辑  收藏  举报