Begin tran transaction_try
Declare @insert_tran,@update_tran
Insert…..
Select @insert_tran=@@error
Update……
Select @update_tran=@@error
If @insert_tran=0 and @update_tran=0
Begin
…rollback tran
End
事务需要满足ACID
原子性(Atomicity),一个事务是最基本的执行单元,是不可分割的执行部分,要么都执行,要么都不执行;
一致性(Consistency),数据库总是从一个一致性状态转换到另外一个一致性状态;
隔离性(Isolation),个事务所做的修改在最终提交以前,对其他事务是不可见的;
持久性(Durability)一旦事务提交,则其所做的修改就会永久保存到数据库中。(这个持久性的定义其实是模糊的,没有说清楚持久性的级别);
脏读:事务A访问到了事务B未提交的数据;
幻读:事务A第一次没读到数据,第二次或多次读取的时候,看到了数据;(期间有其他事务进行了insert操作)
不可重复读:事务A第一次读取的数据跟后面读取的数据内容不一样;(期间其他事务可能进行了修改)
https://zhuanlan.zhihu.com/p/512143490
https://www.bilibili.com/video/BV1M5411M7xX/?p=10&vd_source=07539ea0fcf778267253f9a6e6ec097d
https://www.bilibili.com/video/BV1X34y1h7wi/?vd_source=07539ea0fcf778267253f9a6e6ec097d
Hi,
Tomorrow!