SET XACT ABORT用法(事務)

2021-05-22 08:04:05 字數 2103 閱讀 3033

set

xact_abort

指定當transact

-sql

陳述式發生執行時期錯誤時

,microsoft

®sql

server™

是否會自動復原目前的交易。

語法set

xact_abort 備註

當setxact_abort

設定為on

時,如果

transact

-sql

陳述式發生執行期錯誤

,整個交易都會中斷並復原。設定為

off時

,只有發生錯誤的

transact

-sql

陳述式會復原

,交易將繼續處理。編譯錯誤,例如語法錯誤並不會受到

setxact_abort

的影響。

大部份ole

db提供者的隱含或內顯交易的資料修改陳述式都要求必須將

xact_abort

設定為on

,包含sql

server

在內。唯一不需要設定此選項的情形是當提供者支援巢狀交易時。如需詳細資訊,請參閱分布式查詢及分布式交易。

setxact_abort

的設定是在執行或執行時期設定

,而不是在剖析時期設定。

範例 本範例在還有其他

transact

-sql

陳述式的交易中

,造成外部索引鍵違反錯誤。在第一組陳述式中會產生錯誤,但是其他的陳述式將成功地執行,交易也會成功地認可。在第二組陳述式中,

setxact_abort

設定變更為

on,將造成陳述式錯誤,中斷批次及交易復原。

create

tablet1(

aint

primary

key)

create

tablet2(

aint

referencest1(

a))go

insert

into

t1values

(1)insert

into

t1values

(3)insert

into

t1values

(4)insert

into

t1values

(6)go

setxact_abort

offgo

begin

tran

insert

into

t2values

(1)insert

into

t2values

(2)/* foreign key error */

insert

into

t2values

(3)commit

trango

setxact_abort

ongo

begin

tran

insert

into

t2values

(4)insert

into

t2values

(5)/* foreign key error */

insert

into

t2values

(6)commit

trango

/* select shows only keys 1 and 3 added.

key 2 insert failed and was rolled back, but

xact_abort was off and rest of transaction

succeeded.

key 5 insert error with xact_abort on caused

all of the second transaction to roll back. */

select

*from

t2go

drop

table

t2drop

table

t1go

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

預設為set xact abort off,沒有事務行為。set xact abort on分為兩種 1 總體作為乙個事務,整體提交或整體回滾,格式為 set xact abort on begin tran 要執行的語句 commit tran go 2 每個語句作為乙個事務,事務在錯誤行終止,錯...

完美拖拽 return false的用法 事件繫結

1.return false可以用來阻止預設事件即系統預設事件。例如通過阻止預設事件,來對textarea中的值進行範圍限制 通過限制keycode的數值 也可以自定義在頁面中的右鍵選單 oncontextmenu 2.在滑鼠移動 mousemove 等事件中,是需要給事件傳乙個引數,保證程式的正常...

SQL基礎語法 事務

事務的四大特性有 原子性 atomicity 乙個事務的操作要麼全部成功要麼全部失敗 一致性 consistency 保持資料的邏輯一致,符合原子性不一定符合一致性,如轉賬增加的錢與減少的錢不一致 隔離性 isolation 多個使用者併發操作同一資料時,資料庫為每乙個使用者開的事務上鎖,達到隔離的...