BEGIN TRANSACTION
insert into xxx;
insert into xxx;
COMMIT TRANSACTION.
在上面那个显示事务中,如果第二条insert语句失败, 会怎样? 第一条insert语句是否会已经插进去了?
你这个事务会不会回滚?
------解决思路----------------------
事务是原子级的,只要没有全部执行成功,都会自动回滚,所以第二条失败,第一条也会回滚,不会插入
------解决思路----------------------
一般你需要去捕获这个错误,然后rollback。
也可以设置:
set xact_abort on
这样当出现错误,就能够自动回滚