2017-07-14 69 views
2

我目前正在对SSIS包中的错误发送电子邮件通知。它目前工作。只是想检查这是否是正确的做法。 enter image description here使用SSIS发送错误电子邮件通知

+0

您是否可以将其安排为'SQL Server Agent'中的工作? – LONG

+0

确保红色约束是OR,而不是AND,否则只有在_everything_失败时才会发送电子邮件 –

+0

像这样的问题更适合codereview.stackexchange.com –

回答

0

我认为这个问题没有标准答案。但是这里有一些我能够想到的技巧。

首先,不是很确定你要发送出去,如果他们没有动态正文什么样的纯文本的,你可以把在event handlerssend email task权的Control flow, Data Flow...选项卡,然后把那个on error特定任务。其次,我个人不喜欢使用Failure输出,您可能需要增加MaximumErrorCount的数量,以便包可以成功执行,但有时真正的错误可能不会被检测到,因为与错误输出一起,总数错误编号仍然小于阈值。第三,如果您发送的是同一文本,并且您将其作为SQL Server Agent中的作业进行安排,您可以转到Notifications选项页面,设置Send Email,基本上它会提供信息。

最后但并非最不重要的,Send Mail task只支持纯文本,没有任何格式,如电子邮件通过html & CSS编码,如果你需要的格式考虑,可能不会是你的选择,你可以Script task使用C#使用或者通过使用XML声明从SSMS创建html页并放入存储过程,然后通过Database Mail发送出html,您会在SSMSManagement文件夹中找到此工具。

0

如果您想要在发生任何错误时触发邮件任务,请考虑“事件处理程序”。

这SimpleTask文章提供了事件处理程序 https://www.red-gate.com/simple-talk/sql/ssis/ssis-event-handlers-basics/

的一个很好的概述

SSIS事件处理程序打开的SSIS脚本到一个可靠的系统,该系统可审核的最简单的方法,反应适当地对错误条件,报告进展并允许检测和监测您的SSIS包。它们很容易实现,并提供很大的灵活性。

样品屏幕截图: enter image description here

使用事件处理提供了一些好处 - 你不必连接每个任务的失败。系统会调用您的事件处理程序来查找错误。

另外,还要注意有感兴趣2个事件处理程序: 的OnError

OnTaskFailed

https://docs.microsoft.com/en-us/sql/integration-services/integration-services-ssis-event-handlers

OnError事件 - 发生错误时将引发此事件。

OnTaskFailed事件 - 该事件在任务失败时引发。

需要注意的一件事是,根据错误的数量,您可能会多次调用事件处理函数。

相关问题