您的位置:首页 > 数据库

SqlServer2005中利用存储过程分页

2010-12-08 21:29 399 查看
利用存储过程分页的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: