SQL实现分页存储过程

SQL分页存储过程的编写:

 1 --获得分页的DATASET资源
 2 ALTER PROC sp_GetSource(
 3 @PageSize INT,    --每页显示条数
 4 @PageIndex INT,    --页码(从1开始)
 5 @RowCount    INT OUTPUT,    --数据总数
 6 @PageCount    INT OUTPUT--总页数
 7 )
 8 AS
 9 BEGIN
10     --获取数据总数
11     SELECT @RowCount = COUNT(*)
12     FROM [tblUser]
13     --计算总页数
14     SET @PageCount = @RowCount / @PageSize
15     IF @RowCount % @PageSize > 0
16     BEGIN
17         SET @PageCount = @PageCount + 1
18     END
19     --获取当前页的数据
20     SELECT [userID],[UserName],[UserLoginName],[RoleID]
21     FROM
22     (
23         SELECT [userID],[UserName],[UserLoginName],[RoleID],ROW_NUMBER() OVER(ORDER BY [userID] ASC) AS RowNumber
24         FROM [tblUser]
25     ) T
26     WHERE RowNumber BETWEEN ((@PageIndex - 1)*@PageSize + 1) AND (@PageIndex * @PageSize)
27 
28 END

 

posted on 2013-09-10 22:19  程序猴chengxuhou.com  阅读(207)  评论(0编辑  收藏  举报

导航