SSIS-控制错误日志发送到SSIS目录

时间:2019-02-06 14:03:24

标签: sql-server logging ssis etl

我在SSIS中有一个程序包,其中有一个foreach循环容器,该容器在失败后重试特定的数据流3次。

enter image description here

每个失败都记录在SSIS目录中,但是在这种情况下,我只想在第三次失败时记录该错误。是否可以在SSIS中专门控制此错误日志?

我有一个由主程序包调用的程序包,并且在子程序包中至少有一个失败时,执行的最终状态为“失败”。实际上,我只希望当foreach第三次失败时,它在主和/或子程序包中显示“失败”。

2 个答案:

答案 0 :(得分:0)

您将需要执行SQL任务以计算错误数,并将该计数放置在变量中。然后使用连接到下一步的变量检查该变量的值是否为3或更高。

答案 1 :(得分:0)

尝试执行以下步骤:

  1. 首先,将Foreach循环容器(在属性标签中)的ForceExecutionResult设置为Success
  2. 然后,您应该添加类型为Int *(例如:@[User::counter]且初始值等于0的变量
  3. Data flow Task之后添加Expression Task-具有失败优先级约束-具有以下表达式:

    @[User::counter] = @[User::counter] + 1
    
  4. 在Foreach循环容器之后添加脚本任务,在脚本内部检查@[User::counter]是否等于3,如果是,则抛出异常或使用Dts.Events.FireError()方法。 / p>