1. 程式人生 > >SQL事務回滾的問題及其解決的方法

SQL事務回滾的問題及其解決的方法

Begin Transaction:開始一個事務; 
Commit Transaction:提交事務; 
Rollback Transaction:回滾事務。 

其中Commit Transaction 與Rollback Transaction 都必須有對應的Begin Transaction 才能正確被執行。 

如: 

Begin Tran 
…… 
Rollback Tran 
Commit Tran 

以上事務只執行了回滾操作。執行Commit Tran系統會返回3902錯誤,即@@Error=3902,COMMIT ,http://www.bj999.cn/yinchan/11290.shtml,TRANSACTION 請求沒有對應的 BEGIN TRANSACTION。 

Begin Tran 
…… 
Commit Tran 
Rollback Tran 

以上事務員執行了提交事務操作。執行Rollback Tran系統會返回3903錯誤,即@@Error=3903,ROLLBACK TRANSACTION 請求沒有對應的 BEGIN TRANSACTION。 

例項:使用@@Error返回值來控制回滾 

設有表a,有欄位num (int),name (varchar(20));表b,有欄位num (int),Add (varchar(50))。以下是一個儲存過程,使用了@@Error的返回值來控制元件事件回滾: