首页 > 开发 > 综合 > 正文

发布一个高效的数据分页的存储过程 可以轻松应付百万数据

2024-07-21 02:12:05
字体:
来源:转载
供稿:网友

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 这里有详细的说明

 

 

菜鸟学堂:
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表