f XACT_ ABORT 如何影響t-sql 交易 ~ 迪貝之家

XACT_ ABORT 如何影響t-sql 交易

 

當我在書中看到它的描述時
我就覺得看不懂
只好去查了一下internet
照著case做一遍
哈..........
原來..我這麼不了解SQL Server呀~~
wow...還真是有點丟人現眼了
因為一直以來的認知是
大家都是承襲Oracle的transaction概念來的
When SET XACT_ABORT is OFF, in some cases only the Transact-SQL statement that raised the error is rolled back and the transaction continues processing. Depending upon the severity of the error, the entire transaction may be rolled back even when SET XACT_ABORT is OFF. OFF is the default setting in a T-SQL statement, while ON is the default setting in a trigger.
看了微軟的文件
我還是覺得疑惑
什麼叫做視錯誤的嚴重程度來決定
是否進行整個trasaction的rollback
恩......
好吧~~以後再觀察

挖操.....
至少以後跟AP 談程式邏輯時
我不會被吐槽
真是...
一個DBA被吐槽這個
很丟臉ㄝ
雖然它的設定預設是OFF
不過如果要查看它的值
好像不太容易ㄝ
它是session的屬性
SSMS畫面在這兒
SSMS session property
用t-sql 顯示設定可不太容易
得透過bit的運算來顯示
Internet上有高手給了一段t-sql查詢
總得改一下,不然改天因智財被告
就真的好玩了
不過我也只不過是個私人部落格的文章
是能提出什麼經濟損失來跟我求償
更何況跨國打官司
哈~~ 人家又不是白癡...
國外的律師多貴阿.......
快被法務教育影片給搞瘋了
我還是只挑幾個option來幫助我記憶就好
有興趣的,請看連結
DECLARE @session_sets INT
SELECT @session_sets = @@options
PRINT @session_sets
IF ( (32 & @session_sets) = 32 )
PRINT 'ANSI_NULLS'
IF ( (64 & @session_sets) = 64 )
PRINT 'ARITHABORT'
PRINT 'CONCAT_NULL_YIELDS_NULL'
IF ( (8192 & @session_sets) = 8192 )
PRINT 'NUMERIC_ROUNDABORT'
IF ( (16384 & @session_sets) = 16384 )
PRINT 'XACT_ABORT'
Determining SET Options for a Current Session in SQL Server