Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SSIS包级别OnError发送两封电子邮件_Sql Server 2008_Ssis_Package_Transformation - Fatal编程技术网

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

Sql server 2008 SSIS包级别OnError发送两封电子邮件,sql-server-2008,ssis,package,transformation,Sql Server 2008,Ssis,Package,Transformation,我有一个包,每当一个控制流元素出现故障时,它就会发送两封电子邮件。例如,如果ExecuteSQL任务失败,则包级别的OnError事件处理程序将触发两封电子邮件 这是一个已知的问题吗?我该怎么做? 我可以通过数据库驱动的脚本来实现这一点,但本质上,我希望在SSI本身上处理这种情况。感谢您的帮助。请记住,只要触发操作发生,事件处理程序就会引发事件。因此,不能保证使用事件处理程序只获取一个事件(当然也有少数例外) 如果您想保证只发送一封电子邮件,那么我建议不要通过OneError事件发送电子邮件,而

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

这是一个已知的问题吗?我该怎么做?
我可以通过数据库驱动的脚本来实现这一点,但本质上,我希望在SSI本身上处理这种情况。感谢您的帮助。

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

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


或者,您也可以在OneError事件中将用户变量设置为true,然后基于该变量发送电子邮件,并使用“完成时”约束和检查错误用户变量值的表达式混合。这样,OneError事件引发多少次并不重要,因为任务只有在至少引发一次的情况下才会运行。

我更喜欢第二个选项。我会试试看。谢谢当任务/约束中出现错误时,是否触发了任务/容器失败约束?我修改了另一个问题的旧答案,以更好地说明我在做什么。