我有一个 SQL Server 作业,每次失败时都会发出通知。我每 5 分钟运行一次这项工作。如果某项工作需要在晚上 10:00 更改其状态,并且直到第二天早上才发现问题,那么将发送超过 100 封电子邮件,其中包含相同的失败通知。
无论如何,您是否可以限制发送的电子邮件数量?例如,如果一小时内 12 次计划运行中的任何一个失败,我希望 SQL Server 在该小时内发送一封电子邮件通知,但不应发送超过一封电子邮件(即使有多次失败) .
我有一个 SQL Server 作业,每次失败时都会发出通知。我每 5 分钟运行一次这项工作。如果某项工作需要在晚上 10:00 更改其状态,并且直到第二天早上才发现问题,那么将发送超过 100 封电子邮件,其中包含相同的失败通知。
无论如何,您是否可以限制发送的电子邮件数量?例如,如果一小时内 12 次计划运行中的任何一个失败,我希望 SQL Server 在该小时内发送一封电子邮件通知,但不应发送超过一封电子邮件(即使有多次失败) .
您可以创建一个简单的表,其中包含作业名称和bit
指示电子邮件是否已成功发送的列,然后检查该列作为警报的一部分。
DECLARE Notifications TABLE
(
ID int IDENTITY (1, 1) PRIMARY KEY NOT NULL,
JobName varchar(50),
MailSent bit DEFAULT 0
)
在 SSMS 中选择管理下的数据库邮件,右键单击并配置数据库邮件。完成后,使用新配置文件发送测试邮件以确认其有效。
接下来,打开 SQL Server 代理的属性。在警报系统页面上启用邮件配置文件。重新启动 SQL Server 代理以使更改生效。
在 SQL Server 代理下创建要向其发送消息的操作员。
最后,在您的作业中选择通知并将操作员设置为在作业完成时发送。