我在SSIS中有一个程序包,其中有一个foreach循环容器,该容器在失败后重试特定的数据流3次。
每个失败都记录在SSIS目录中,但是在这种情况下,我只想在第三次失败时记录该错误。是否可以在SSIS中专门控制此错误日志?
我有一个由主程序包调用的程序包,并且在子程序包中至少有一个失败时,执行的最终状态为“失败”。实际上,我只希望当foreach第三次失败时,它在主和/或子程序包中显示“失败”。
答案 0 :(得分:0)
您将需要执行SQL任务以计算错误数,并将该计数放置在变量中。然后使用连接到下一步的变量检查该变量的值是否为3或更高。
答案 1 :(得分:0)
尝试执行以下步骤:
ForceExecutionResult
设置为Success
。Int
*(例如:@[User::counter]
且初始值等于0
的变量在Data flow Task
之后添加Expression Task-具有失败优先级约束-具有以下表达式:
@[User::counter] = @[User::counter] + 1
在Foreach循环容器之后添加脚本任务,在脚本内部检查@[User::counter]
是否等于3
,如果是,则抛出异常或使用Dts.Events.FireError()
方法。 / p>