Reference
查詢是否有啟用 XACT_ABORT 選項
在設計交易程式時,可以利用 XACT_ABORT 選項,指定當 Transact-SQL 陳述式產生執行階段錯誤時,SQL Server 是否自動回復目前的交易。
依據預設值,每個連線並未啟用 XACT_ABORT。
所以有朋友詢問,要如何檢視是否有啟用 XACT_ABORT 呢?
建議:可以利用 DBCC USEROPTIONS:傳回目前連接在使用中 (已設定) 的 SET 選項。
請參考以下的範例碼:
USE master GO /* DBCC USEROPTIONS 傳回目前連接在使用中 (已設定) 的 SET 選項。 */ -- 預設僅顯示有啟用的SET 選項。未啟用的選項,並不會顯示出來。 DBCC USEROPTIONS; -- 啟用 SET XACT_ABORT ON /* 當 SET XACT_ABORT 是 ON 時,如果 Transact-SQL 陳述式產生執行階段錯誤,就會終止和回復整個交易。 當 SET XACT_ABORT 是 OFF 時,在某些情況下,只會回復產生錯誤的 Transact-SQL 陳述式,交易會繼續進行。 隨著錯誤嚴重性而不同,即使 SET XACT_ABORT 是 OFF,也有可能回復整個交易。OFF 是預設值。 SET XACT_ABORT 不會影響到如語法錯誤之類的編譯錯誤。 */ SET XACT_ABORT ON -- 多增加一筆記錄,有顯示 XACT_ABORT。 DBCC USEROPTIONS;
請參考下圖所示:檢查已經啟用 XACT_ABORT 選項。
沒有留言:
張貼留言