預設為set xact_abort off,沒有事務行為。
set xact_abort on分為兩種:
1、總體作為乙個事務,整體提交或整體回滾,格式為:
set xact_abort onbegin
tran
--要執行的語句
commit
tran
go
2、每個語句作為乙個事務,事務在錯誤行終止,錯誤行回滾,錯誤行之前的不回滾,格式為:
set xact_abort onbegin
--要執行的語句
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,無需多解釋,在這個 咆哮體 盛行的時代,想不...