Вы должны взглянуть на функцию ROW_NUMBER () , доступную с SQL Server 2005.
Оказалось, что это самый эффективный (в моем случае) способ подкачки на стороне сервера.
Пример:
SELECT *
FROM (
SELECT col1, col2, col3,
ROW_NUMBER() OVER(ORDER BY col1 ASC) AS rownbr
FROM table
WHERE col2 = 'something'
) AS Query
WHERE rownbr BETWEEN 1 AND 10
ORDER BY rownbr
Вы можете установить столбцы, по которым вы хотите упорядочить, в операторе OVER (), а также первую и последнюю строки, которые вы хотите получить во внешнем операторе WHERE.