Ssis 如何使用事件处理程序控制SSI中相同错误的电子邮件触发?

Ssis 如何使用事件处理程序控制SSI中相同错误的电子邮件触发?,ssis,Ssis,我使用ssis事件处理程序在整个包(package+OneError)中发生错误时触发电子邮件。此处触发的电子邮件数等于生成的错误数。即使相同的错误发生了10次,我如何将其限制为一个邮件事件 请建议……您有一些选择。在包级别设置OneError电子邮件的问题是,它会为包遇到的每个错误发送一封电子邮件。如果深层次转换失败,这会变得很难看,因为它无法备份到包级别,这将导致错误 我建议你: 1) 在任务级别设置ONERROR事件并删除包级别事件。通常这就足够了。大多数任务将只报告一个错误。小心处理数据

我使用ssis事件处理程序在整个包(package+OneError)中发生错误时触发电子邮件。此处触发的电子邮件数等于生成的错误数。即使相同的错误发生了10次,我如何将其限制为一个邮件事件


请建议……

您有一些选择。在包级别设置OneError电子邮件的问题是,它会为包遇到的每个错误发送一封电子邮件。如果深层次转换失败,这会变得很难看,因为它无法备份到包级别,这将导致错误

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

2) 设置某种高级日志记录。我见过这样做的几种方式。我见过一些人设置脚本任务,将错误(在任务级别)记录到一个变量中,然后在正文中发送包含该变量的最后一封电子邮件(在控制流级别)。我还看到人们为发生的每个错误调用存储过程(在任务级别和包级别)。存储过程将把错误记录到数据库中,并允许包继续执行下一步/容器。然后可以将记录的错误转储到csv中,并作为附件通过电子邮件发送

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

从另一个解决方案更新-如果您想保持当前电子邮件的错误,并简单地防止某些错误“冒泡”并发送电子邮件,您可以按照此学习如何优雅地处理错误。您可以防止某些任务错误到达包级别的ONERROR事件。祝你好运