回滚事务在SSIS中不起作用

时间:2015-07-09 08:49:34

标签: ssis transactions

我的SSIS包中的ForEach循环中有以下Sequence Container:

enter image description here

我正忙着测试 ROLLBACK TRANSACTION 语句,它执行正常,但不会回滚。

不确定我是否遗漏了什么?

提前致谢。

编辑:

这是数据流在我的序列容器中的样子:

enter image description here

1 个答案:

答案 0 :(得分:0)

我采取了另一种方式来确保我的故障转移工作。我做的是我在我的表中添加了一个列,它将存储一个GUID,当出现错误时,我只删除表中的记录,其中GUID等于该会话中使用的那个GUID。我在我的ForEach容器将使用的select语句中添加了GUID,然后将其写入表中。

SELECT
    ReconMedicalAidFile.fReconMedicalAidFileID
    ,ReconMedicalAidFile.fReconMedicalAidID
    ,ReconMedicalAids.fMedicalAidID
    ,ReconMedicalAidFile.fFileName
    ,ReconMedicalAidFile.fFileLocation
    ,ReconMedicalAidFile.fFileImportedDate
    ,ReconMedicalAidFile.fNumberRecords
    ,ReconMedicalAidFile.fUser
    ,ReconMedicalAidFile.fIsImported 
    ,CONVERT(varchar(50),NEWID()) AS 'Session'
FROM ReconMedicalAidFile 
INNER JOIN ReconMedicalAids ON ReconMedicalAidFile.fReconMedicalAidID = ReconMedicalAids.fReconMedicalAidID
WHERE (fIsImported = 0) AND (fNumberRecords = 0)

我在脚本任务中添加了此代码,该代码将映射上面选定的GUID:

DELETE FROM BankmedStatments
WHERE fSession = ?

DELETE FROM ReconMedicalAidData
WHERE fSession = ?