2014-10-22 126 views
0

后失败我有一个SSIS包,它在一台机器更新一个表,然后需要将数据复制到另一台计算机(服务器)。SSIS包序列容器执行SQL任务

由于超时失败,程序包经常失败,所以我们想出了一个选项,首先将它加载到临时表中,然后从temp加载到main ...以便主表数据不会会受到影响公正的情况下连接失败...

现在我们要重新开始包,以防万一它fails..and我们一直在使用检查点..和重试选项,同时调度工作。

这项工作很好,但它有一个问题..临时表有一些数据,以防万一它失败...现在我想要包使用执行SQL任务回滚数据,然后再次从它运行它是失败点。

我如何直接执行SQL任务以失败状态它succeds之后(在执行回滚)...,并确保包装在容器中的块,其中失败开始。

附加的流动路径... enter image description here

+0

这听起来像你需要在执行SQL任务在try..catch。然后在CATCH块中使用回滚tran和RAISERROR。那有意义吗?请记住,当程序包结束执行时,临时表数据将会丢失。 – 2014-10-22 12:17:56

+0

检查站不是你的朋友。您需要将该逻辑放入您的包中。 – billinkc 2014-10-22 15:00:20

回答

0

转到附加表中存储元数据,对每个任务的任务删除查询。 通过这种方式,您只需要在执行任务之前在元数据中运行查询。遵循这种方式,您还可以维护日志以及定义自动重试。