как получить 1-ю 1000 записей, а затем следующие 1000 и продолжить? - PullRequest
0 голосов
/ 18 марта 2012
select top 1000 from table1.

Тогда как мне продолжить со следующей 1000 и идти дальше из таблицы.Есть количество записей, пересекающих миллионы, я должен взять и обработать информацию в течение длительного процесса ... так, подумал об использовании Cursor путем извлечения 1000 и следующих 1000. Любой другой лучший способ?

1 Ответ

1 голос
/ 18 марта 2012

Если вы используете SQL Server 2005 или выше, вы можете использовать функцию row_number ():

Использование ROW_NUMBER () для разбивки данных на страницы с SQL Server 2005 и ASP.NET

Но, как прокомментировал Билли, это не универсальная функция SQL.

Курсор - очень плохой способ сделать это, особенно если вы выполняете отключенные запросы, например, если пользователь просматривает результаты.

Если вы используете более старый SQL Server, чем 2005 г., или ищете универсальный метод, то общий подход заключается в выборе результатов во временную таблицу с индексом идентификации и последующем выборе из этой таблицы. где индекс> = номер_папки * размер страницы && индекс <(номер_папки * размер страницы) + размер страницы </p>

...