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 '记录总数'

 

posted on 2011-10-02 08:41  停飗  阅读(174)  评论(0)    收藏  举报