在sql中发送错误时发送电子邮件任务

时间:2010-08-17 19:20:07

标签: ssis

全部好,

我有一个简单的查找转换,可以找到匹配和不匹配的记录,它为匹配和不匹配的记录创建表。现在我想在包找到任何不匹配的记录时发送一封电子邮件,包裹应该就此停在那里。

谢谢

尼克

1 个答案:

答案 0 :(得分:0)

以下是一些解决方案:

  1. 在查找转换编辑器屏幕中,您可以将指定如何处理没有匹配条目的行字段设置为失败组件并设置运行该作业的作业包发送工作失败的通知。这种方法的缺点是您必须从作业计划中运行包,生成的电子邮件是非描述性的,并且您只能为此作业定义一个操作符,该操作符可能需要与您的普通操作员列表不同(如果您正在通知业务用户而不是IT人员。)

  2. 在“查找转换编辑器”屏幕中,您可以按照1中的说明将组件设置为失败,并在控制流上设置优先约束,从而导致在发生故障时发送电子邮件。您还可以将父对象的MaximumErrorCount设置为2.此方法的一些缺点包括包中可能发生其他错误,包仍然会成功,或者它们可能是数据流源部分的错误,您可能希望单独处理这类错误。

  3. 在查找转换编辑器屏幕中,您可以将行重定向到无匹配输出,创建一个名为RowCount的数据类型Int32的变量,指示查找无匹配输出行计数数据转换,将查找匹配输出发送到正常目的地,在控制流中设置优先约束到下一步评估操作表达式和约束,其中Value等于Success,Expression等于@ [RowCount] == 0,向控件添加发送邮件任务具有来自前一步骤的优先约束的流,其中Value等于Success和Expression等于@ [RowCount]> 1.这将允许您让包成功并只发送一封电子邮件。这种方法的缺点是数据流目标仍将由匹配的源数据填充,并且一旦检测到不匹配就不会立即停止。它只会在数据流本身完成后停止。

  4. 我希望这能满足您的业务需求。如果您需要任何进一步的帮助,请告诉我。