SQL 事物回滾

2022-03-06 17:57:42 字數 966 閱讀 5762

**

第一種:

declare   @ierrorcount   int 

set @ierrorcount = 0

begin tran tran1

insert into t1(id, c1) values(1,'1')

set @ierrorcount=@ierrorcount+@@error

insert into t1(id, c1) values('xx2','2')

set @ierrorcount=@ierrorcount+@@error

if @ierrorcount=0 

begin   

commit tran tran1  --執行事務

end 

else   

begin   

rollback tran tran1  --回滾事務

end第二種:

begin try

begin tran tran1

insert into t1(id, c1) values(1,'1')

insert into t1(id, c1) values('xx2','2')  --此句產生錯誤

commit tran tran1

end try

begin catch 

raiserror 50005n'出錯了' 

rollback tran tran1     ---出錯後呼叫回滾

end catch 

第三種:

set xact_abort on ----語句產生執行時錯誤,則整個事務將終止並回滾。 

begin tran

insert into t1(id, c1) values(1,'1')

insert into t1(id, c1) values('xx2','2') --此句產生錯誤時,就會回滾整個事務

commit tran

MySQL 事物和事物回滾

原子性一致性隔離性永續性 事務應用 開啟事務 mysql begin mysql 一條或者多條sql命令 此時autocommint被禁用終止事務 mysql commit mysql rollback 注意 事務回滾只針對於表記錄的操作 增 刪 改有效 對建立庫 建立表的操作無效背景 你 建行卡 ...

事物回滾後修改狀態執行sql

1.乙個方法使用了事物,由於事物的特性,在執行事物回滾以後,方法內事物回滾以後的sql就不在執行了。如果想要執行以後的 必修先提交當前的事物狀態。手動執行事物回滾 如何在下面執行修改狀態?1.引入事物管理器 autowired private datasourcetransactionmanager...

Spring事物手動回滾

手動回滾 方法1 在service層方法的catch語句中增加 transactionaspectsupport.currenttransactionstatus setrollbackonly 語句,手動回滾,這樣上層就無需去處理異常 現在專案的做法 方法2 例如service層處理事務,那麼se...