SSIS包级别OnError发送两封电子邮件

rvp*_*phx 5 ssis transformation package sql-server-2008

我有一个程序包,每当控制流元素发生故障时,它都会发出两封电子邮件。例如,如果ExecuteSQL任务失败,则程序包级别的OnError事件处理程序将触发两封电子邮件。

这是一个已知的问题?我该如何解决?我可以通过数据库驱动的脚本来完成此操作,但从本质上讲,我想处理SSIS本身的情况。谢谢你的帮助。

RTh*_*mas 4

请记住,只要触发操作发生,事件处理程序就会引发事件。因此,不能保证您只能使用事件处理程序获取一个事件(当然也有一些例外)。

如果您只想保证一封电子邮件,那么我建议不要通过 OnError 事件发送电子邮件,而是链接一个“发送电子邮件任务”,该任务是控制流的一部分,并通过“失败约束”连接到 ExecuteSQL 任务。

或者,您还可以在 OnError 事件中将用户变量设置为 true,然后根据带有“完成时”约束的电子邮件发送电子邮件,该约束与检查 Error 用户变量值的表达式混合。这样,OnError 事件引发多少次并不重要,因为只有至少引发一次任务才会运行。

  • 我更喜欢第二种选择。会尝试一下。谢谢! (2认同)