【问题标题】:SQL Server send email when query result is not emptySQL Server 在查询结果不为空时发送电子邮件
【发布时间】:2019-04-26 13:03:41
【问题描述】:

当查询结果集包含记录时,我需要从 SQL Server 发送电子邮件。查询可以基于在多个表之间进行连接的大量逻辑。

请按正确的方向发送给我(视图、视图触发器、SQL Server 代理作业..?)。

【问题讨论】:

  • Stack Overflow 不是一个寻求教程的网站,而是寻求帮助来解决您已经尝试(但失败)解决的编码问题。如果您可以展示您的尝试,并解释为什么它们不起作用,我们将很乐意帮助您找出错误的地方和原因。否则,如果您正在寻找教程,GoogleBingDuckDuckGo 等将是一个不错的起点;您的标题可能会给您带来有用的点击。 Title
  • 查询不“保留”行。您(或其他人)必须运行查询才能知道结果行集是否为空。你需要后退一步,想想你的目标——你的商业目标。我建议你把它分解成碎片。您可以轻松找到有关从 sql server 发送电子邮件的建议。让它工作。然后找出发送此电子邮件的关键事件或情况。

标签: sql-server sql-server-2012 triggers job-scheduling


【解决方案1】:

使用此处记录的 sp_send_DBmail (https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql?view=sql-server-2017) 用于所有参数选项

declare @bodytext varchar(max)= '<b>Hey look I wrote something</b>'

if(Exists(select 1 from ....))
begin
EXEC msdb.dbo.sp_send_dbmail  
@recipients='xyz@gmail.com',
@subject='ATTN! There are records',
@body=@bodytext,
@body_format='HTML',
@from_address='DBA <kl@domain.com>',
@reply_to='xyz@gmail.com'
end

【讨论】:

    【解决方案2】:

    看看 Vsql-email 应用程序(你可以在 google 上搜索,我想我不允许在这里发布直接链接),如果查询有 0 行,它有这个选项不发送电子邮件,并且您可以将电子邮件作为 HTML 格式的正文和/或 excel 附件发送,无需在 SQL Server 中启用和配置数据库邮件,也无需为 HTML 格式编写代码。

    【讨论】:

    • 问题作者将不胜感激任何代码或配置或任何其他示例,可以用作起点。
    猜你喜欢
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多