Sql server SSIS-发送到SSIS目录的控制错误日志
我在SSIS中有一个包,它有一个foreach循环容器,在失败后重试一个特定的数据流3次 每个故障都记录在SSIS目录中,但在这种情况下,我只想在第三次出现故障时记录错误。是否可以在SSIS中专门控制此错误日志Sql server SSIS-发送到SSIS目录的控制错误日志,sql-server,logging,ssis,etl,Sql Server,Logging,Ssis,Etl,我在SSIS中有一个包,它有一个foreach循环容器,在失败后重试一个特定的数据流3次 每个故障都记录在SSIS目录中,但在这种情况下,我只想在第三次出现故障时记录错误。是否可以在SSIS中专门控制此错误日志 我有一个主包调用这个包,只要子包中至少有一个失败,执行的最终状态就是“失败”。实际上,当foreach第三次失败时,我只希望它在主包和/或子包中显示“failed”。您需要一个execute SQL任务来计算错误数,将计数放入一个变量中。然后使用连接到下一步的变量检查该变量的值是否为3
我有一个主包调用这个包,只要子包中至少有一个失败,执行的最终状态就是“失败”。实际上,当foreach第三次失败时,我只希望它在主包和/或子包中显示“failed”。您需要一个execute SQL任务来计算错误数,将计数放入一个变量中。然后使用连接到下一步的变量检查该变量的值是否为3或更高。尝试执行以下步骤:
ForceExecutionResult
设置为Success
Int
*(示例:@[User::counter]
类型的变量,初始值等于0
数据流任务
之后添加一个带有失败优先约束的命令,使用以下表达式:
@[User::counter] = @[User::counter] + 1
@[User::counter]
是否等于3
如果是,则引发异常或使用Dts.Events.FireError()
方法关于变量的数量,错误总是会传递。我不明白你的意思!当条件值为var>=3时,将包更改为仅传递到日志错误。有关如何执行的详细说明,请参阅以下内容:for循环容器不是问题所在。因为即使不强制执行结果成功,它也会方法是这样的。for循环容器从不失败,因为我已将数据流的事件处理程序设置为不在出错时传播。因此,即使数据流组件失败,for each容器也不会失败,并且数据流的错误仍会记录在ssis上。