事务中SET XACT_ABORT各种用法
生活随笔
收集整理的這篇文章主要介紹了
事务中SET XACT_ABORT各种用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SET XACT_ABORT
? ? 一提到事務,也許,你的第一反應就是,要么全部執行,要么全部不執行,然而事實.............可以不是這樣滴!
測試代碼
?
CREATE TABLE TEST( ID INT NOT NULL PRIMARY KEY IDENTITY(1,1), VAL VARCHAR(2) )?
1.事務終止并全部回滾
SET XACT_ABORT ON BEGIN TRANINSERT INTO TEST VALUES('11')INSERT INTO TEST VALUES('22')INSERT INTO TEST VALUES('3333') --超出字符長度INSERT INTO TEST VALUES('44') COMMIT TRANSELECT * FROM TEST --結果:沒有值2.只回滾錯誤行,語句還繼續執行
SET XACT_ABORT OFF BEGIN TRANINSERT INTO TEST VALUES('11')INSERT INTO TEST VALUES('22')INSERT INTO TEST VALUES('3333') --超出字符長度INSERT INTO TEST VALUES('44') COMMIT TRANSELECT * FROM TEST --結果: /* ID VAL 4 11 5 22 7 44 */3.事務在錯誤行終止,錯誤行回滾,錯誤行之前的不回滾
?每個語句作為一個事務,事務在錯誤行終止,錯誤行回滾,錯誤行之前的不回滾.(BENGIN END)
DELETE FROM TEST SET XACT_ABORT ON BEGIN INSERT INTO TEST VALUES('11')INSERT INTO TEST VALUES('22')INSERT INTO TEST VALUES('3333') --超出字符長度INSERT INTO TEST VALUES('44') ENDSELECT * FROM TEST --結果: /* ID VAL 8 11 9 22 */?
轉載于:https://www.cnblogs.com/mc67/p/4823514.html
總結
以上是生活随笔為你收集整理的事务中SET XACT_ABORT各种用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【poj3734】矩阵乘法求解
- 下一篇: 使用Git进行代码管理的心得