У меня есть SQL-запрос, по которому я собираюсь передавать достаточное количество данных ответа по сети, но я хочу как можно быстрее получить общее количество строк, чтобы облегчить связывание в пользовательском интерфейсе. По сути, мне нужно получить снимок всех строк, соответствующих определенным критериям, и затем иметь возможность пролистывать все полученные строки.
Вот что у меня сейчас есть:
SELECT --primary key column
INTO #tempTable
FROM --some table
--some filter clause
ORDER BY --primary key column
SELECT @@ROWCOUNT
SELECT --the primary key column and some others
FROM #tempTable
JOIN -- some table
DROP TABLE #tempTable
Время от времени результаты запроса оказываются не в порядке (предположительно потому, что я делаю неупорядоченный выбор из временной таблицы).
На мой взгляд, у меня есть несколько вариантов:
- Добавление второго порядка по предложению к выбору из временной таблицы.
- Переместите предложение по предложению ко второму выбору, и пусть первый выбор будет неупорядоченным.
- Создайте временную таблицу со столбцом первичного ключа, чтобы принудительно упорядочить временную таблицу.
Каков наилучший способ сделать это?