我有几个 (12) 存储过程,它们被编程为每晚运行的作业中的步骤。每个存储过程都将查询结果发送给几个收件人。实际上有 4 个过程 - 每个过程与三个数据库中的一个和一组不同的收件人相关联,总共有 12 个。收件人的其中一个电子邮件地址无效。发生这种情况时,四个程序中的一个(但只有一个!)开始生成重复的电子邮件。
我从使用 SP_SEND_DBMAIL 向所有收件人发送重复电子邮件的存储过程中了解到,无效的电子邮件地址可以启动重试尝试。因此,我删除了有问题的地址,并将 DBMail 配置上的帐户重试次数减少到 0。但是仍然会生成电子邮件。它们被发送到已被删除的无效电子邮件地址以及其他收件人。
如果我手动运行作业,则不会生成重复项。我已尝试删除并重新创建作业,但问题仍然存在。我已更改作业的时间表以在另一个时间发送 - 即使已删除重复的电子邮件,也会与原始时间表同时发送。查看工作/邮件历史记录,有问题的电子邮件不会出现。
这是某种错误吗?该过程的SQL如下所示,以供参考:
DECLARE @qry varchar(2000)
SET @qry = 'SELECT Fields FROM TABLE WHERE Conditions'
SET NOCOUNT ON
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Example Email',
@from_address = 'email@email.com',
@recipients = 'example1@email.com; example2@email.com',
@subject = 'SubjectLine',
@body = 'BodyText',
@query = @qry;