У меня есть две таблицы «основной» и «перемещенный». В «основной» таблице есть записи, из которых я перемещаю 3 строки последовательно в «перемещенную» таблицу, выполняя хранимую процедуру. Поэтому каждый раз, когда я выполняю хранимую процедуру, он должен проверять, чтобы следующий набор из трех строк последовательно считывался из «основной» таблицы из строки последнего перемещения и вставлен в «перемещенную» таблицу.Возьмите следующие N строк рекурсивно и последовательно из таблицы sql
select rowid from @main
rowid
-----------------------
1
2
3
4
5
Теперь, когда я выполнить запрос, он должен взять 3 строки из «основного» таблицы и вставить в «переехал» таблицы. Скажем, если я запустил запрос 5 раз, так я ожидаю, что таблица «перемещение» будет содержать каждый раз при запуске.
1,2,3 --"moved" table has these rows 1st time when I run the query
4,5,1 --"moved" table has these rows 2nd time when I run the query
2,3,4 --"moved" table has these rows 3rd time when I run the query
5,1,2 --"moved" table has these rows 4th time when I run the query
3,4,5 --"moved" table has these rows 5th time when I run the query
1,2,3 --"moved" table has these rows 6th time when I run the query
... поэтому последовательное чтение продолжается. Прочитайте последовательно из следующей строки, где она закончилась с последнего запуска.
Я уже спрашивал об этом, но ответ работает только частично. Он не работает, когда значения в «основной» таблице растут или не упорядочены.
Заранее за вашу помощь.
Без предложения ORDER BY нет порядка, а _sequential_ не имеет значения. В каком столбце вы хотите указать порядок значений, которые должны быть взяты из '@ main'? (Кажется, что только один столбец, и вам не нравятся результаты, которые он предоставляет.) – HABO
«Главная» таблица является базовой таблицей и имеет только один столбец «RowID». Таблица «Перемещена» - это целевая таблица, которая также имеет только один столбец «RowID». Я пытаюсь прочитать строки сверху вниз и начать с вершины снова, как только он достигнет конца таблицы - рекурсивный. Запрос может быть любым, пока я получаю данный вывод выше. В главной таблице есть только столбец «RowID». –