一.创建product表:
CREATE TABLE [dbo].[product](
[productid] [int] NULL,
[category] [varchar](50) NULL,
[name] [varchar](50) NULL,
[descn] [varchar](50) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
二.创建存储过程
--存储过程进行分页查询
create procedure paging
@pagesize int, --每页记录的条数
@currentpage int, --当前第几页(要查的页数)
@recordcount int output, --总的记录条数
@pagecount int output --总的页数
as
begin
--查询数据
select
p.productid,
p.category,
p.name,
p.category
from (select *,row_number() over(order by productid asc) as nu from dbo.product) as p
where p.nu between (@currentpage-1)*@pagesize+1 and @pagesize*@currentpage
-- (select *,row_number() over(order by productid asc) as un from dbo.product)
--把无序的productid升序排列之后赋给nu
--计算总的计算条数
set @recordcount =(select count(*) from dbo.product)
--计算总页数
set @pagecount=ceiling(@recordcount*1.0/@pagesize)
end
三.执行存储过程
declare @tt int,@ff int --两个临时变量
exec paging @currentpage=1,@pagesize=6,@recordcount=@tt output,@pagecount=@ff output
--输入currentpage(要查的页数)和pagesize(指定每页要查的条数)当前查的是第一页,每页有六条数据
print @tt
print @ff
--输出总页数和有几页