Ssis sql中出现错误时发送电子邮件任务

Ssis sql中出现错误时发送电子邮件任务,ssis,Ssis,大家好 我有一个简单的查找转换来查找匹配和不匹配的记录,它为匹配和不匹配的记录创建一个表。现在我想发送一封电子邮件时,包发现任何不匹配的记录和包应该停止在那里 谢谢 尼克以下是一些解决方案: 在Lookup Transformation Editor屏幕中,您可以将Specify how to handling with no matching entries(指定如何处理没有匹配项的行)字段设置为Fail component(失败组件),并将运行包的作业设置为在作业失败时发送通知。这种方法的缺

大家好

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

谢谢


尼克

以下是一些解决方案:

  • 在Lookup Transformation Editor屏幕中,您可以将Specify how to handling with no matching entries(指定如何处理没有匹配项的行)字段设置为Fail component(失败组件),并将运行包的作业设置为在作业失败时发送通知。这种方法的缺点是您必须根据作业计划运行包,生成的电子邮件是非描述性的,并且您只能为此作业定义一个操作员,这可能需要与您的常规操作员列表不同(如果您通知的是业务用户而不是IT人员)

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

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


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

    非常感谢您的帮助。我用你的3号解决方案解决了。谢谢。刻痕