【发布时间】:2020-03-12 16:00:48
【问题描述】:
我根据 Google 发布的帖子尝试了几种不同的方法。但我就是无法让它工作。 我正在运行一个 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 语句中?
谢谢!
【问题讨论】:
-
"
esex"? “sp.send_dbmail”?我假设您的意思是EXEC和sys.sp_send_dbmail。此外,BEGIN应该跟随您的ELSE。这些看起来都像是印刷错误,因为上面肯定会给你错误。esex不是有效的关键字,我怀疑在您的数据库中的架构sp上有一个对象send_dbmail。 -
是的 'exec' 和 msdb.dbo.sp_send_dbmail 。执行官是一个错字,其余的都是准确的,但工作没有错误。 else 之后有一个 begin。
-
然后edit 你的问题。如果您在代码中包含您说“正在工作”的拼写错误,但显然不会,那么它很可能会因为排版错误而被否决或关闭。
标签: sql-server tsql if-statement rowcount sp-send-dbmail