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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值