首页 > 解决方案 > T-SQL - 如果为真则运行 sp_send_dbmail 否则什么都不做?

问题描述

根据谷歌吐出的帖子,我尝试了几种不同的方法。但我就是无法让它工作。我正在运行一个 select 语句,并使用 sp_send_dbmail 将结果通过电子邮件发送给收件人。这工作得很好。我想要完成的是,如果 select 语句返回 0 行,则不会发出任何电子邮件。我尝试了很多东西,一个例子:

    Select Statement    --The select statement is at the top of the code
    IF @@rowcount = 0     -- followed by the IF statement
    begin
    return
    end
    ELSE
    begin
    exec msdb.dbo.sp_send_dbmail 
    end

运行上面的示例,我没有收到错误,但无论是 0 还是非 0,它都会发送电子邮件。

如何根据 select 语句是否返回零结果将 sp.send_dbmail 封装到 IF 语句中?

谢谢!

标签: sql-servertsqlif-statementrowcountsp-send-dbmail

解决方案


尝试

IF EXISTS([Select Statement])
BEGIN
exec sp.send_dbmail
END

推荐阅读