Подсчет результатов хранимой процедуры - PullRequest
13 голосов
/ 19 февраля 2009

У меня есть хранимая процедура, возвращающая идентификатор, имя, описание и не принимает никаких входных параметров. Однако меня интересует, сколько результатов я получу.

Я ожидал что-то вроде этой работы:

SELECT COUNT(*) FROM EXEC MyStoredProcedure

Но я получаю следующую ошибку в SqlServer Managment Studio: Неверный синтаксис рядом с ключевым словом «EXEC». Не могли бы вы показать мне небольшой пример кода, как я могу это сделать?

Ответы [ 4 ]

23 голосов
/ 19 февраля 2009

Это не сработает. Могу ли я предложить:

exec MyStoredProcedure
select @@rowcount

В качестве альтернативы вы можете вернуть счет в качестве выходного параметра

3 голосов
/ 19 февраля 2009

Вам необходимо поместить логику в сохраненный процесс и вернуть счет из сохраненного процесса. Вы делаете это, используя переменную @@ ROWCOUNT сразу после вашего запроса. Это, по крайней мере, будет работать в MS SQL Servet.

Сохраненный процесс:

CREATE PROC MyPROC
AS
DECLARE @MyCount int

...

SELECT * FROM MyTable WHERE ...

SELECT @MyCount = @@ROWCOUNT

...

return @MyCOunt

Телефонный код:

DECLARE @MyCount int

EXEC @MyCount = EXEC MyProc
2 голосов
/ 19 февраля 2009
SELECT @@ROWCOUNT
0 голосов
/ 19 февраля 2009

Напишите новую хранимую процедуру, которая рассчитывает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...