SET XACT ABORT各種用法及顯示結果

2022-01-26 03:15:53 字數 2554 閱讀 3811

預設為set xact_abort off,沒有事務行為。

set xact_abort on分為兩種:

1、總體作為乙個事務,整體提交或整體回滾,格式為:

set xact_abort on

begin

tran

--要執行的語句

commit

tran

go

2、每個語句作為乙個事務,事務在錯誤行終止,錯誤行回滾,錯誤行之前的不回滾,格式為:

set xact_abort on

begin

--要執行的語句

endgo

--

建立測試表

use mydb

create

table student

(

stuid int

notnull

primary

key,

stuname varchar(50)

)create

table score

(stuid int

notnull

references student(stuid),

score int)go

--插入測試資料

insert

into student values (101,'

zhangsan

') insert

into student values (102,'

wangwu

') insert

into student values (103,'

lishi

') insert

into student values (104,'

maliu

') go

---------------測試事務提交------------------

use mydb

--只回滾錯誤行,語句還繼續執行

set xact_abort off

begin

tran

insert

into score values (101,90)

insert

into score values (102,78)

insert

into score values (107,76) /*

foreign key error

*/insert

into score values (103,81)

insert

into score values (104,65)

commit

tran

go/*

stuid score

----------- -----------

101 90

102 78

103 81

104 65

(4 row(s) affected)

*/use mydb

--事務終止並全部回滾

set xact_abort on

begin

tran

insert

into score values (101,90)

insert

into score values (102,78)

insert

into score values (107,76) /*

foreign key error

*/insert

into score values (103,81)

insert

into score values (104,65)

commit

tran

go/*

stuid score

----------- -----------

(0 row(s) affected)

*/use mydb

--事務在錯誤行終止,錯誤行回滾,錯誤行之前的不回滾

set xact_abort on

begin

insert

into score values (101,90)

insert

into score values (102,78)

insert

into score values (107,76) /*

foreign key error

*/insert

into score values (103,81)

insert

into score values (104,65)

endgo

/*stuid score

----------- -----------

101 90

102 78

(2 row(s) affected)

*/

SET XACT ABORT用法(事務)

set xact abort 指定當transact sql 陳述式發生執行時期錯誤時 microsoft sql server 是否會自動復原目前的交易。語法set xact abort 備註 當setxact abort 設定為on 時,如果 transact sql 陳述式發生執行期錯誤 整個...

用遞迴刪除各種節點

include include include define maxsize 1000typedef intelemtype typedef struct node node typedef node linkednode 1 求以h為頭指標的單鏈表的節點個數 int getnodenum link...

各種符號用英文怎麼讀

我們每天都看見或敲擊這些符號,但不見得當老外或老師用英語說出這些符號時我們能立即反應過來,這正是促成此文的原因。1.波浪號tilde,源於西班牙語和葡語中的發音符號。2.感嘆號exclamation mark exclamation point bang,無需多解釋,在這個 咆哮體 盛行的時代,想不...