【发布时间】:2014-11-10 18:50:03
【问题描述】:
我有一个 SSIS 包,它更新机器中的表,然后需要将数据复制到不同的机器(服务器)。
由于超时失败,包经常失败,所以我们想出了一个选项,首先将其加载到临时表,然后从临时表加载到主表......这样主表数据就不会得到万一连接失败会受到影响...
现在我们想重新启动包以防万一它失败..我们一直在使用检查点..在安排作业时重试选项。
作业运行良好,但有问题..临时表有一些数据以防万一它失败...现在我希望包使用执行 SQL 任务回滚数据,然后再从失败中再次运行它点。
如何在执行 SQL 任务成功后(执行回滚)将其引导至失败状态...并确保包从失败的容器中的块开始。
正在附加流路...
【问题讨论】:
-
听起来您在执行 sql 任务中需要一个 TRY..CATCH。然后在 CATCH 块中使用 rollback tran 和 RAISERROR。那有意义吗?请记住,当包结束执行时,您的临时表数据将丢失。
-
检查点不是你的朋友。您需要将该逻辑放入您的包中。