分页存储过程,SQL SERVER 2005自带功能

 

CREATE PROC UP_GetProductByPage
@pageSize int,
@pageNumber int
AS
Declare @rowStart int
Declare @rowEnd int
if @pageNumber > 0
Begin
SET @pageNumber = @pageNumber -1
SET @rowStart = @pageSize * @pageNumber + 1;
SET @rowEnd = @rowStart + @pageSize - 1 ;
With Temp AS                                                                  --用with申明一张Temp表,保存查询结果
( SELECT *,                                                                     --[*]可以指定具体的哪些要查询的列名
ROW_NUMBER() OVER (order by ProductID) as rowNumber  --[ProductID]是用来排序的字段,[rowNumber]指定一个行号,以方便分页

FROM Product )                                                                --[Product]指定在查询的表名
select *
from Temp
Where rowNumber >= @rowStart and rowNumber <= @rowEnd
END

--执行

--仅需指定页面大小和页数目(GetProductByPage , @pageSize and @pageNumber)即可运行此存储过程,代码如下:
exec UP_GetProductByPage 10,1

 

--注释:begin 与 end 相当于程序中的“{ ”左大括号,“}”右大括号,是成双成对存在。且要匹配。


 

 



 

posted @ 2009-12-27 16:31  Vihone  阅读(327)  评论(0编辑  收藏  举报