save transaction t3

save transaction 事务保存点,不增加减少事务计数@@TRANCOUNT。

使用save transaction  mx 保存的事物点,可以rollback transaction  到事务保存点,但是commit就会提交整个事务。而不仅仅是事务点。

 

 

begin tran
  begin tran b
 begin tran c
    select @@TRANCOUNT,'c1'
    save transaction jkcmx    --  若是改为begin tran
    select @@TRANCOUNT,'jkcmx1'
    rollback  transaction jkcmx --回到事务保存点 ,这里回滚就全部回滚或提交了,而不是只回滚当前事务jkcmx   
    select @@TRANCOUNT,'jkcmx2'
 commit tran c
 select @@TRANCOUNT,'c2'
  commit tran b
  select @@TRANCOUNT,'b2'
commit tran
select @@TRANCOUNT,'a2'
 

用户可以在事务内设置保存点或标记。保存点定义如果有条件地取消事务的一部分,事务可以返回的位置。如果将事务回滚到保存点,则必须(如果需要,使用更多的 Transact-SQL 语句和 COMMIT TRANSACTION 语句)继续完成事务,或者必须(通过将事务回滚到其起始点)完全取消事务。若要取消整个事务,请使用 ROLLBACK TRANSACTION transaction_name 格式。这将撤消事务的所有语句和过程。

save tran  t3后,无论有没rollback tran t3,都得必须有后续的commit、rollback 操作。因为完整的事务未结束。

特别注意事务嵌套,内层用了save tran,后续的commit、rollback影响到外层的事务计数器。@@trancount

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值