你的位置:首页 > 数据库

[数据库]Sql分页存储过程


Sql2012及以上版本的分页比较简单:

CREATE PROCEDURE usp_pagingin2012@Start   INT=0, @PageLimit INT=10ASBEGINSELECT * FROM 表名ORDER BY 列名(可选)OFFSET @Start ROW 开始位置FETCH NEXT @PageLimit ROWS ONLY END

Sql2005-2008分页稍微复杂一点:

CREATE PROCEDURE usp_paging@PageNumber INT=1, @PageSize  INT=10AS BEGINWITH ctepaging   AS (SELECT *,        Row_number() OVER(ORDER BY 列名) AS rownum     FROM 表名) SELECT * FROM  ctepaging WHERE rownum BETWEEN ( @PageNumber - 1 ) * @PageSize + 1 AND@PageNumber * @PageSizeEND