use memory
go
--建立表名
create table emp
(
empno int identity(1,1)primary key,
empname varchar(20),
empsex varchar(2),
empage int,
wage money
)
--建立存储过程
create proc sp_pagination
(
@page int=1,--a页码
@log int = 10,--每页默认为10条
@sumpage int,--输出参数有多少页
@sum int--记录总数
)
as
declare @star int,@end int
set @star = (@page - 1) * @log +1--求出你选择页码的第一个值
set @end = @star + @log -1----求出你选择页码的最后一个值
select * from (
select empno,empname,empsex,empage,wage, row_number()over(order by empno )as 'fieid' from emp )T where fieid BETWEEN @star AND @end
select @sum=COUNT(*) from emp
if(@sum%@log !=0)--判断有多少页面
begin
select '页码'=@page,'每页记录'=@log,'有多少页' = @sum/ @log+1
end
else
begin
select '页码'=@page,'每页记录'=@log,'有多少页' = @sum/ @log
end
return @sum
go
s
declare @number int
exec @number = sp_pagination 2,3,0,0
select @number as '记录总数'