在过程中隐藏SELECT结果

时间:2018-04-27 20:26:27

标签: sql sql-server tsql

在存储过程中,我有一个逻辑检查会抛出错误&如果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 :(得分:2)

如何使用IFEXISTS

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传统上不会使用分号。