Без изменения кода хранимой процедуры ваши параметры довольно ограничены.
Вы могли бы сделать
CREATE TABLE #results(
[rownum] [int] identity(1,1) NOT NULL,
...Other Columns matching stored procedure result format
)
insert into #results
EXECUTE dbo.the_sp
SELECT * FROM #results
WHERE rownum BETWEEN 50 AND 100
Очевидно, что он все равно будет выполнять тот же объем работы в самом хранимом процессе (и добавит некоторые накладные расходы для шага временной таблицы), но это уменьшит количество результатов, возвращаемых клиенту.
Чтобы смягчить это и в зависимости от логики хранимых процедур, вы можете использовать
SET ROWCOUNT 100
EXECUTE dbo.the_sp
Чтобы прекратить возвращать ненужные результаты, принадлежащие страницам после отображаемой
Но так как это будет применяться к каждому выражению в хранимой процедуре (а не только к последнему, возвращающему результаты клиенту), это вполне может не подойти.