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
分页存储过程(Sql Server) (表名、当前页索引、每页显示行数,则返回 数据集和总页数)
最新推荐文章于 2023-09-19 14:42:15 发布