【问题标题】:SSIS Package level OnError sends two emailsSSIS 包级别 OnError 发送两封电子邮件
【发布时间】:2012-07-18 02:22:49
【问题描述】:

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

这是一个已知问题吗?我该如何解决这个问题? 我可以通过数据库驱动的脚本来做到这一点,但本质上,我想处理 SSIS 本身的情况。感谢您的帮助。

【问题讨论】:

标签: sql-server-2008 ssis package transformation


【解决方案1】:

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

如果您只想保证一封电子邮件,那么我建议您不要通过 OnError 事件发送电子邮件,而是将作为控制流一部分的“发送电子邮件任务”链接到带有“故障约束”的 ExecuteSQL 任务.

或者,您也可以在 OnError 事件中设置一个等于 true 的用户变量,然后根据该变量发送电子邮件,其中包含一个“完成时”约束和一个检查错误用户变量值的表达式。这样一来,OnError 事件引发多少次都没关系,因为该任务只有在至少引发一次时才会运行。

【讨论】:

  • 我更喜欢第二个选项。会试一试。谢谢!
  • 任务/约束出错时是否触发任务/容器故障约束?
猜你喜欢
  • 2012-08-20
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多