SQL Server (從 2008 開始) 提供 TRANSACTION 交易功能,在 VITO の 學習筆記 文章裡針對 Transactions 已有詳細說明,本文會透過案例方式來了解 XACT_ABORT、TRANSACTION、XACT_STATE 彼此關係,在這之前,先認識幾個跟交易有關的功能與用途。 XACT_ABORT 預設 OFF。用於執行階段的交易控制,當 T-SQL 執行發生錯誤同時 XACT_ABORT 為 ON,就會終止並回復整個交易;如果 XACT_ABORT 為 OFF,交易會繼續進行,但是會依據錯誤嚴重度(Severity)不同,有可能回復整個交易。若是發生錯誤之後才設定 XACT_ABORT 為 ON,已完成的交易仍會寫入,無法回復整個交易,只要修改 XACT_ABORT 為 ON,最後記得改回 OFF。 針對大部分 OLE DB 提供者 (包括 SQL Server) 的隱含或明確的交易,其中之資料修改陳述式的 XACT_ABORT 都必須設為 ON。 只有在提供者支援巢狀交易時,才不需要這個選項。 SET XACT_ABORT 的設定是在執行階段進行設定,而不是在剖析階段進行設定。若要檢視此設定的目前設定,請執行下列查詢。 DECLARE @XACT_ABORT VARCHAR(3)...
Continue Reading