如何使用事件处理程序控制在ssis中触发同一错误的电子邮件?

时间:2013-08-22 06:21:43

标签: ssis

我正在使用ssis事件处理程序在整个程序包(PACKAGE + ONEEROR)中发生错误时触发电子邮件。这里触发的电子邮件数量等于生成的错误数量。如果出现相同的错误10次,我怎样才能将其限制为一封邮件。

请建议......

1 个答案:

答案 0 :(得分:0)

您有几个选择。在程序包级别设置ONERROR电子邮件的问题是,它将为程序包遇到的每个错误发送一封电子邮件。如果你有一个深层转换失败,这会变得很难看,这会因为它失败回到包级别而出错。

我建议您: 1)在任务级别设置ONERROR事件并删除包级别事件。通常这会足够好。大多数任务只会报告一个错误。小心数据流,它们的行为方式与包级别事件类似。

2)设置某种预先记录。我已经通过几种方式看到了这一点。我见过一些人设置脚本任务,将错误(在任务级别)记录到一个变量,然后发送一个包含该变量的最终电子邮件(在控制流级别)。我还看到人们为每个发生的错误调用存储过程(在任务级别和包级别)。 sproc会将错误记录到DB并允许包继续到下一步/容器。然后可以将记录的错误转储到csv中并通过电子邮件发送为附件。

如果您喜欢当前的设置,可以尝试更改每个容器/任务的错误属性。我从来没有这样做,但我知道你可以改变任务处理错误的方式!我不喜欢这个选项,因为你可能会错过错误(也许是猜测)。

更新来自其他解决方案 - 如果您希望将当前的电子邮件保留为ONERROR并且只是阻止某些错误“冒泡”并发送电子邮件,您可以按照此link了解如何优雅地处理错误。您可以防止某些任务错误在程序包级别达到ONERROR事件。祝你好运。