我讀過很多人傾向於在程序開始時SET XACT_ABORT ON
。SET XACT_ABORT OFF如果交易由SET終止XACT_ABORT ON
CREATE PROC myProc
AS
Begin
BEGIN TRAN
SET XACT_ABORT ON
[..code1 that might throw an error..]
[..code2..]
SET XACT_ABORT OFF [?]
COMMIT TRAN
END
SET XACT_ABORT OFF [?]
由於運行時錯誤將終止程序,SET XACT_ABORT
將被保留爲ON
。我有一些問題:
你在哪裏設置它?在
CREATE PROC
定義之前,在BEGIN
之後或BEGIN TRAN
之後?SET
在連接層面,所以我想所有三個都不會有所作爲?什麼時候變成
OFF
如果發生了錯誤ON
?
感謝您的回覆。爲什麼我們希望它在默認關閉時打開? – Kenny
有關詳細信息,請參見http://www.sommarskog.se/error_handling/Part2.html#classification。 –