设置容器事务“必需”后SSIS包冻结

时间:2013-05-28 13:33:45

标签: sql-server transactions ssis dml

我正在尝试创建一个SSIS包,其中某个容器中的失败导致该容器(并且只有该容器)的数据流中的回滚。这个软件包冻结了,只有在我停止运行它或者通过管理工作室终止这个过程时才会终止。

我无法发布图片,所以我会简短介绍一下。

我有两个容器。第一个有:

  1. 一个数据流,包含从平面文件到两个表的选择,我称之为t_imp和h_imp。
  2. 接下来是两个表中的字段ObjCde的更新任务。
  3. 容器中的最后一个数据流使用t_imp作为源,进一步操作并将数据移动到其他表。
  4. 第三项是出错的地方。我已经看到t_imp表被锁定了。

    包的事务选项是Supported,第一个容器是必需的,第二个容器是NotSupported。 (第二个容器包含进程任务和一个不应回滚的数据流任务。) 所有隔离级别都在ReadCommitted上。

    我在这里缺少什么?

    我是否不允许在同一个容器中使用表格作为来源和目的地?

    我是否需要设置其他参数?

1 个答案:

答案 0 :(得分:1)

您通过读取/插入同一个表来阻止自己。这不是SSIS包冻结,而是SQL Server锁定表不允许事务继续。