根事務(wù)要確認(rèn),但事務(wù)中止了操作—解決辦法
根事務(wù)要確認(rèn),但事務(wù)中止了操作—解決辦法
?
SQL 報如上的錯誤:是因為 沒有使用 SET XACT_ABORT ON
?
begin?tran/***/commit?tran 之前使用了?SET XACT_ABORT ON?才能回滾
?
?
----------------------------
當(dāng) SET XACT_ABORT 為 ON 時,如果 Transact-SQL 語句產(chǎn)生運(yùn)行時錯誤,整個事務(wù)將終止并回滾。為 OFF 時,只回滾產(chǎn)生錯誤的 Transact-SQL 語句,而事務(wù)將繼續(xù)進(jìn)行處理。編譯錯誤(如語法錯誤)不受 SET XACT_ABORT 的影響。
對于大多數(shù) OLE DB 提供程序(包括 SQL Server),隱性或顯式事務(wù)中的數(shù)據(jù)修改語句必須將 XACT_ABORT 設(shè)置為 ON。唯一不需要該選項的情況是提供程序支持嵌套事務(wù)時。有關(guān)更多信息,請參見分布式查詢和分布式事務(wù)。
SET XACT_ABORT 的設(shè)置是在執(zhí)行或運(yùn)行時設(shè)置,而不是在分析時設(shè)置。