create proc [dbo].[up_pager]
--*********过程要完成的功能
@table varchar(200)='student', --表名
@pageSize int=10, --页码大小
@pageNum int=2, --当前第几页
@primaryKey varchar(100)='stuid', --主键
@field varchar(1000)='*', --字段stuname,sex,birthday
@count int output ,--数据总数
@pageCount int output --页数
as
--set @table='student'
--set @pageSize=10
--set @pageNum=2
--set @primaryKey='stuid'
--set @field='*'
declare @sql nvarchar(2000)
set @sql='select @c=count(1) from '+@table
exec sp_executesql @sql,
N'@c int output',
@count output
--create proc u_demoo
--@c int
--as
--select @c=count(1) from student
--go
--一共有多少页
set @pagecount=@count/@pageSize
if(@count%@pageSize!=0)
begin
set @pagecount=@pagecount+1
end
--5 要显示的页码超过最后一页显示最后一页
if(@pageNum>@pageCount)
begin
set @pageNum=@pagecount
end
--要显示的页友小于了第页,应该显示第一页
if(@pageNum<1)
begin
set @pageNum=1
end
--******************拼接分页的sql语句
set @sql='select top '+convert(varchar, @pagesize)
+' '+@field+' from '
+@table+' where '+@primaryKey
+' not in ('
+'select top '+convert(varchar,(@pageNum-1)*@pagesize)
+' '+@primaryKey+' from '+@table
+')'
print @sql --打印
--提示消息
declare @msg varchar(1000)
set @msg='当前:'+convert(varchar,@pagenum)+'页,共'+convert(varchar,@pagecount)
+'页,总记录数:'+convert(varchar,@count)+'条'
--执行
exec(@sql)
print @msg
--******************调用f
declare @count int,@pagecount int
exec up_pager 'student',10,2,'stuid','*',@count output,@pagecount output
print @count
print @pagecount
--*********过程要完成的功能
@table varchar(200)='student', --表名
@pageSize int=10, --页码大小
@pageNum int=2, --当前第几页
@primaryKey varchar(100)='stuid', --主键
@field varchar(1000)='*', --字段stuname,sex,birthday
@count int output ,--数据总数
@pageCount int output --页数
as
--set @table='student'
--set @pageSize=10
--set @pageNum=2
--set @primaryKey='stuid'
--set @field='*'
declare @sql nvarchar(2000)
set @sql='select @c=count(1) from '+@table
exec sp_executesql @sql,
N'@c int output',
@count output
--create proc u_demoo
--@c int
--as
--select @c=count(1) from student
--go
--一共有多少页
set @pagecount=@count/@pageSize
if(@count%@pageSize!=0)
begin
set @pagecount=@pagecount+1
end
--5 要显示的页码超过最后一页显示最后一页
if(@pageNum>@pageCount)
begin
set @pageNum=@pagecount
end
--要显示的页友小于了第页,应该显示第一页
if(@pageNum<1)
begin
set @pageNum=1
end
--******************拼接分页的sql语句
set @sql='select top '+convert(varchar, @pagesize)
+' '+@field+' from '
+@table+' where '+@primaryKey
+' not in ('
+'select top '+convert(varchar,(@pageNum-1)*@pagesize)
+' '+@primaryKey+' from '+@table
+')'
print @sql --打印
--提示消息
declare @msg varchar(1000)
set @msg='当前:'+convert(varchar,@pagenum)+'页,共'+convert(varchar,@pagecount)
+'页,总记录数:'+convert(varchar,@count)+'条'
--执行
exec(@sql)
print @msg
--******************调用f
declare @count int,@pagecount int
exec up_pager 'student',10,2,'stuid','*',@count output,@pagecount output
print @count
print @pagecount