利用存储过程分页的Sql脚本如下,实际使用中利用存储过程部分就可以了。包括一个获取总记录数,以及查询结果集这两部分。
--进行top查询时 ,参数需要带上()
declare @page int,@pagesize int
set @page=2
select top (@page) * from usertb
--分页
select top 2 * from usertb where userid not in
(select top 2 userid from usertb order by username) order by username
--分页语句块
declare @pageSize int--页数大小
declare @pageIndex int--页码
set @pageSize = 2
set @pageIndex =1
select top ( @pagesize ) * from usertb
where userid not in(
select top (@pageSize*(@pageIndex-1)) userid
from usertb order by username )
order by username
--获得表的总数据量
create proc proc_countres(@count int output)
as
begin
select @count=count(*) from usertb
end
--根据用户指定的页码获得数据集
create proc proc_getres(@pageSize int,@pageIndex int)
as
begin
select top ( @pagesize ) * from usertb
where userid not in(
select top (@pageSize*(@pageIndex-1)) userid
from usertb order by username )
order by username
end
--获取指定页的结果集
exec proc_getres @pageSize=2,@pageIndex=1
--获得总的数据量
declare @count int
exec proc_countres @count output
print @count