您的位置:首页 > 其它

分页存储过程 (表名、当前页索引、每页显示行数,则返回 数据集和总页数)

2009-11-13 16:35 387 查看
create proc Pageproc
(
@TableName varchar(50),	--表名
@pagecount int,			--当前页索引
@pagesize int,			--每页显示的行数
@zongye int output		--总行数
)
as

--获取总行数
declare @zonghang int;
declare @getcountsql nvarchar(500)
set @getcountsql='select @a=count(*) from '+@TableName+' '
exec sp_executesql @getcountsql,N'@a int output',@zonghang output --把执行的结果赋给变量@zonghang

declare @strSql nvarchar(500)
set @strSql='select top '+convert(varchar,@pagesize)+' * from '+@TableName+'';
begin
if @pagecount!=0
begin
set @strSql=@strSql+'where id>(select max(id) from (select top ('+@pagesize*@pagecount+') id from '+@TableName+' order by id asc) as aa)'
end
exec sp_executesql @strSql;
end
begin
if @zonghang%@pagesize!=0
begin
set @zongye=(@zonghang/@pagesize)+1;
end
else
begin
set @zongye=@zonghang/@pagesize;
end
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐