create procedure pagetest --用于翻页的测试
--需要把排序字段放在第一列
(
@firstid nvarchar(20)=null, --当前页面里的第一条记录的排序字段的值
@lastid nvarchar(20)=null, --当前页面里的最后一条记录的排序字段的值
@isnext bit=null, --true 1 :下一页;false 0:上一页
@allcount int output, --返回总记录数
@pagesize int output, --返回一页的记录数
@curpage int --页号(第几页)0:第一页;-1最后一页。
)
as
if @curpage=0
begin
--统计总记录数
select @allcount=count(productid) from product_test
set @pagesize=10
--返回第一页的数据
select top 10
productid,
productname,
introduction
from product_test order by productid
end
else if @curpage=-1
select * from
(select top 10 productid,
productname,
introduction
from product_test order by productid desc ) as aa
order by productid
else
begin
if @isnext=1
--翻到下一页
select top 10 productid,
productname,
introduction
from product_test where productid > @lastid order by productid
else
--翻到上一页
select * from
(select top 10 productid,
productname,
introduction
from product_test where productid < @firstid order by productid desc) as bb order by productid
end
百万数据翻页就像100条数据一样!
http://www.jyklzz.net/web/jyk/index.asp 这里有详细的说明
菜鸟学堂:
新闻热点
疑难解答