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