sql Abrufen von datasätzen aus SQL server-database-Tabelle in Teilen

Ich möchte datasätze aus einer Tabelle in meiner SQL server-database in Teilen abrufen. Wie, in einer Abfrage möchte ich erste 1000 datasätze sehen, in der nächsten Abfrage nächsten 1000 datasätze. Gleichfalls..

Ist es mit sql server möglich? Ich benutze SQL server 2008. Während googeln, fand ich LIMIT Klausel für mysql , aber es funktioniert nicht für sql server . So kann jeder in Sql geben. Bitte helfen Sie.

Erste 1000 Aufzeichnungen:

 SELECT TOP 1000 * FROM mytable ORDER BY mycolumn 

Allgemeine Lösung (unterstützt Offset)

 SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY mycolumn) rn FROM mytable ) q WHERE rn BETWEEN 1001 AND 2000 ORDER BY mycolumn 

Haben Sie auch einen Blick auf T-sql: wie man optimiertes Paging durchführt?