sql动态分页

   create proc proc_fenye
@tbname varchar(20),  --表名
@pagecount int output, --分的页数
@currentpagenumber int output, --当前页的编号
@pagesize int, --分页的大小
@pkname varchar(20),--分页的主键字段
@pagenumber int  --页码
as
declare @countnumber int
declare @sql varchar(200)
declare @sqll varchar(200)
declare @b int
set @b=0
begin
set @sqll='select * from '+@tbname
exec(@sqll)
set @countnumber=@@rowcount
print @sqll
print '总行数是:'+cast(@countnumber as varchar)
if(@countnumber%@pagesize=0)
set @pagecount=@countnumber/@pagesize
else
set @pagecount=@countnumber/@pagesize+1
if(@pagecount<@pagenumber)
begin
print '您查询的页码不存在'
set @currentpagenumber=@pagecount
end
else
begin
set @currentpagenumber=@pagenumber
--select top @pagesize from @tbname where @pkname not in(select top (@pagesize*@pagenumber) @pkname from @tbname)
while(@b<@pagecount)
begin
set @sql='select top '+cast(@pagesize as varchar)+' * from '+@tbname+' where '+@pkname+' not in (select top '+cast(@pagesize*@b as varchar)+' '+@pkname+' from '+@tbname+')'
print @sql
exec(@sql)
set @b=@b+1
end
end
end


declare @dangqianye int
declare @yeshu int
exec proc_fenye 'student',@yeshu output,@dangqianye output,2,'stuid',2
print '当前的页数是:'+cast(@dangqianye as varchar)
print '能够分的页数是:'+cast(@yeshu as varchar)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值