我有一个包,每当控制流元素失败时,它就会发送两封电子邮件。例如,如果 ExecuteSQL 任务失败,包级别的 OnError 事件处理程序会触发两封电子邮件。
这是一个已知的问题?我该如何解决这个问题?
我可以通过数据库驱动的脚本来做到这一点,但本质上,我想处理 SSIS 本身的情况。谢谢你的帮助。
最佳答案
请记住,事件处理程序将在触发操作发生时引发事件。因此,您不能保证使用事件处理程序只获得一个事件(当然有一些异常(exception))。
如果您只想保证只有一封电子邮件,那么我建议不要通过 OnError 事件发送电子邮件,而是将作为控制流一部分的“发送电子邮件任务”链接到带有“失败约束”的 ExecuteSQL 任务。
或者,您还可以在 OnError 事件中将用户变量设置为等于 true,然后根据该变量将“完成时”约束与检查 Error 用户变量值的表达式混合发送电子邮件。这样,OnError 事件引发多少次都无关紧要,因为任务只有在至少引发一次时才会运行。
关于sql-server-2008 - SSIS 包级别 OnError 发送两封电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528050/