Надеюсь, это просто.Я оптимизирую хранимую процедуру, которая возвращает около 500+ строк.Мой план состоит в том, чтобы возвращать строки партиями до тех пор, пока не останется строк, которые можно получить.
Например, я получу строки 0-49, затем 50-99, затем 100-149 и т. Д.
Я выполнил это, используя следующий код SQL:
CREATE PROCEDURE [dbo].[mySP]
@rowstart int,
@rowend int
AS
WITH MainQuery AS
(
HUGE SELECT STATEMENT HERE
)
select * from MainQuery where row between @rowstart and @rowend
Когда я запускаю этот SP, я просто передаю значения для rowstart и rowend, и он возвращает диапазон строк, который я хочу идеально.
Проблема в том, что я хочу знать, что есть БОЛЬШЕ строк, которые можно получить после каждого запроса.Я думаю, что могу добиться этого, возвращая @@ ROWCOUNT после завершения блока MainQuery, но я не знаю, как получить диапазон возвращаемых строк И значение для @@ ROWCOUNT после каждого раза, когда SPказнены.
Когда я делаю начальный запрос на получение 50 возвращенных строк, если бы я мог знать, что есть 503 ВСЕГО строки таблицы, я могу сделать простую математику (503/50) и выяснить, сколько еще раз мне нужнопозвонить в ИП.Любая помощь приветствуется!