Я использую хранимый процесс для разбивки на страницы сервера на большом наборе записей. Хранимый процесс имеет довольно сложное условие where.
Мне также нужно общее количество записей перед разбиением на страницы, чтобы иметь возможность визуализировать это числопользовательский интерфейс.
Как лучше всего это сделать?
на данный момент я делаю
ALTER PROCEDURE [Schema].[ReturnRecords]
@PageSize int = 20,
@StartIndex int = 0
AS
SELECT * FROM
(
SELECT *, TOP(COUNT(e._ROWID) OVER ())
FROM TABLE_NAME
WHERE Column=1 AND Column1=2 AND Column2=2 AND Column3=2 AND Column4=2
) AS X
WHERE X.RowNum BETWEEN @StartIndex AND (@StartIndex + @PageSize)
, поэтому мой последний столбец записи содержит общее количествоколичество записей перед разбиением на страницы.
Альтернативой является создание временной таблицы с внутренним запросом, затем подсчет записей и возврат временной таблицы, но это не выглядит хорошим способом сделать это ...
Я бы хотел вернуть общее количество записей в качестве выходного параметра хранимого процесса
Есть идеи?