Скрыть результаты SELECT в процедуре - PullRequest
0 голосов
/ 27 апреля 2018

Внутри хранимой процедуры у меня есть логическая проверка, которая выдаст ошибку и прервет мою процедуру, если инструкция SELECT вернет какие-либо результаты, например:

-- set breakpoint if true:
    SELECT myid, COUNT(*) AS [Records]
    FROM #mytemptable
    GROUP BY myid
    HAVING COUNT(*) > 1

    IF @@ROWCOUNT > 0
    BEGIN;
        THROW 51000,'ERROR - this is wrong', 1
    END

Это корректно нарушает мой отчет, когда [Записи]> 1. Однако, когда нет результатов, мне нужно подавить вывод этого пустого запроса SELECT (причина в том, что эта процедура передает несколько последующих процедур).

Эта процедура также возвращает несколько других результатов SELECT, которые я не хочу подавлять. Как я могу скрыть только этот один пустой результат?

1 Ответ

0 голосов
/ 27 апреля 2018

Как насчет использования IF и EXISTS?

IF EXISTS (SELECT myid, COUNT(*) AS [Records]
           FROM #mytemptable
           GROUP BY myid
           HAVING COUNT(*) > 1
          )
BEGIN
    THROW 51000,'ERROR - this is wrong', 1
END;

BEGIN традиционно не ставит точку с запятой после него.

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