assume your table has a primary key or datetime field, create a stored procedurecreate proc Get1000Records
@Key varchar(100) = null
as
  if @key is null 
   Select top 1000 * from yourtable order by YourKeyField
  else
   select top 1000 * from yourtable where YourKeyField > @Key order by YourKeyField
if you need to go backward/forward, then you need to remember the last key and first keyalso seehttp://www.4guysfromrolla.com/webtech/062899-1.shtmlhttp://www.15seconds.com/issue/010308.htmhttp://www.aspfree.com/print/1417,0/

解决方案 »

  1.   

    select top 1000 * from table 
    select top 1000 * from table where id not in (select top 1000 id from table)
      

  2.   

    select top 1000 * from table  order by id 
    select top 1000 * from table where id not in (select top 1000 id from table order by id) order by id 
      

  3.   

    to  meteorlg(lance) and  Ouyangyifeiczy(子浪) :what if he wants the third 1000? :-)
      

  4.   

    you probably could doselect top 1000 * from table where id not in (select top 2000 id from table order by id) order by id but I would think this is not efficient when you do, say, the 11th 1000 records:select top 1000 * from table where id not in (select top 10000 id from table order by id) order by id
      

  5.   

    saucer(思归) 的方法好。
    你每次附的文章都很好,对我们帮助很大,国外不知道有哪些网站可以找到更多的优秀的资料啊?
      

  6.   

    http://expert.csdn.net/Expert/topic/2365/2365596.xml?temp=.5068781
    交流--查询第X页,每页Y条记录
    邹建
      

  7.   

    效率最高的分页:CREATE PROCEDURE GetProductsPaged
    @lastProductID int,
    @pageSize int
    AS
    SET ROWCOUNT @pageSize
    SELECT *
    FROM Products
    WHERE [standard search criteria]
    AND ProductID > @lastProductID
    ORDER BY [Criteria that leaves ProductID monotonically increasing]
    GO