Transaction(交易,大陸譯名:事务)
將多個資料庫操作的 SQL 指令 group 成一個執行的單元區塊( a single execution unit ),以特定的字串( Begin Transaction )來標記交易開始,一個交易可能包括了多個資料庫操作指令來完成,交易結束時的動作有兩個,若所有的操作全部執行成功,交易才算成功並提交變更( Commit Transaction ),若當中有發生錯誤失敗,則整個交易宣告失敗並回復所有變更( Rollback Transaction )。
例:
DECLARE @chk tinyint SET @chk = 0 Begin Transaction [Trans_Name] -- Trans_Name 交易名稱可自訂或者是不寫 -- 可編寫多個 SQL 指令 INSERT INTO [Table_Name] VALUES( 'Field_Value_1' ); IF @@Error <> 0 BEGIN SET @chk = 1 END INSERT INTO [Table_Name] VALUES( 'Field_Value_2' ); IF @@Error <> 0 BEGIN SET @chk = 1 END IF @chk <> 0 BEGIN -- 若是新增資料發生錯誤 Rollback Transaction [Trans_Name] -- 復原所有操作所造成的變更 END ELSE BEGIN Commit Transaction [Trans_Name] -- 提交所有操作所造成的變更 END
參考資料:
http://www.codeproject.com/Articles/4451/SQL-Server-Transactions-and-Error-Handling
文章標籤
全站熱搜
留言列表