在存储过程中,我有一个逻辑检查会抛出错误&如果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结果。我怎样才能隐藏这一个空结果?
答案 0 :(得分:2)
如何使用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
传统上不会使用分号。