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)
sql动态分页
最新推荐文章于 2024-08-20 10:39:11 发布