Мне было дано задание рефакторинга существующей хранимой процедуры, чтобы результаты были разбиты на страницы. Сервер SQL - это SQL 2000, поэтому я не могу использовать метод разбивки на страницы ROW_NUMBER. Хранимый процесс уже довольно сложен, он объединяет фрагменты большого оператора SQL перед выполнением процедуры sp_executesql и имеет различные доступные варианты сортировки.
Первый результат из Google кажется хорошим методом, но я думаю, что пример неправильный в том, что 2-й сорт должен быть перевернут, а случай, когда начало меньше длины страницы, не работает. Второй пример на этой странице также кажется хорошим методом, но SP использует номер страницы, а не начальную запись. И вся эта временная таблица выглядит так, как будто это приводит к снижению производительности.
Я продвигаюсь по этому пути, но он кажется медленным и сбивающим с толку, и мне нужно сделать довольно много методов REPLACE в порядке сортировки, чтобы заставить его работать правильно.
Есть ли какие-то более простые техники, которые мне не хватает?