我自己写了一个分页存储过程,大家指点指点,第一次写存储过程,还有不少是不懂的,希望高手指点。create proc articlePages
@pageIndex int,   --页数
@pageSize int,    --页面显示的数据量
@dbFields varchar(1000)    --查询的列名
as 
declare @strSql varchar(5000)   --查询的Sql语句if @pageIndex = '1'  
  set @strSql='select top'+ ' ' + str(@pageSize) + + ' ' + @dbFields + ' from article  order by id desc'
else
  begin
   set @strSql = 'select  top'+ ' ' + str(@pageSize) +' '+ @dbFields +' '+'from article'
   set @strSql = @strSql + ' ' + 'where id <('  
   set @strSql = @strSql + 'select min(id) from ('
   set @strSql = @strSql + 'select top '+ str((@pageIndex-1)*@pageSize) + +' id from article order by id desc) as t' +') order by id desc'
  end exec(@strSql)GO直接输入页数就可以了,以下是我测试的结果,数据量是655351,呵呵,还不到百万数据啊。100页时 SQL Server 执行时间: 
   CPU 时间 = 0 毫秒,耗费时间 = 1 毫秒。1000页时SQL Server 执行时间: 
   CPU 时间 = 0 毫秒,耗费时间 = 7 毫秒。
10000页时SQL Server 执行时间: 
   CPU 时间 = 78 毫秒,耗费时间 = 108 毫秒。20000页时SQL Server 执行时间: 
   CPU 时间 = 172 毫秒,耗费时间 = 188 毫秒。
30000页时SQL Server 执行时间: 
   CPU 时间 = 265 毫秒,耗费时间 = 265 毫秒。