Sql-Server
SSIS - ROLLBACK TRANSACTION 請求沒有對應的 BEGIN TRANSACTION
我正在嘗試在 SSIS 中使用顯式事務。我正在使用的數據庫沒有啟用 DTC,所以我不能使用 SSIS 的內置事務處理。
我已經執行 sql 任務來初始化、送出和回滾事務,但是儘管將“RetainSameConnection”設置為 true,我仍然收到以下錯誤:
$$ Execute SQL Task $$錯誤:執行查詢“ROLLBACK;” 失敗並出現以下錯誤:“ROLLBACK TRANSACTION 請求沒有相應的 BEGIN TRANSACTION。”。可能的失敗原因:查詢有問題,“ResultSet”屬性設置不正確,參數設置不正確,或連接未正確建立。
事實證明,我做了一件非常愚蠢的事情。
事實證明,我的 SSIS 包非常完美,我已命名事務並將“RetainSameConnection”設置為 true。開始/送出/回滾命令均已正確指定。
我的問題是,作為 SSIS 包的一部分呼叫的儲存過程之一有一個未命名的事務,一旦呼叫該儲存過程中的送出,就會導致 SQL Server 送出所有內容。
解決方案是修改儲存過程以命名事務,以便 SQL Server 將該事務視為嵌套事務(理論上,我本以為第二個“開始事務”語句會這樣做,但由於某種原因這沒有發生)。