当前位置: 代码迷 >> Sql Server >> 显式事务跟隐式事务
  详细解决方案

显式事务跟隐式事务

热度:120   发布时间:2016-04-24 08:47:22.0
显式事务和隐式事务

BEGIN TRANSACTION  
insert into xxx;
insert into xxx;      
COMMIT TRANSACTION.


在上面那个显示事务中,如果第二条insert语句失败, 会怎样? 第一条insert语句是否会已经插进去了?

你这个事务会不会回滚?



------解决思路----------------------
事务是原子级的,只要没有全部执行成功,都会自动回滚,所以第二条失败,第一条也会回滚,不会插入
------解决思路----------------------

一般你需要去捕获这个错误,然后rollback。

也可以设置:

set xact_abort on

这样当出现错误,就能够自动回滚
  相关解决方案