SQL server事务
1.什么是事务
事务就是被绑定在一起作为一个逻辑工作单元的SQL语句组,如果任何一个语句操作失败那么整个操作就被失败,进而回滚到操作前状态,或者是上个节点。为了确保要么执行,要么不执行,就可以使用事务。要将一组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。
2.事务的特性
(1) 原子性(Atomicity):事务是一个完整的操作, 事务中所有操作命令必须作为一个整体提交或回滚。如果事务中任何操作命令失败,则整个事务将因失败而回滚。
(2) 一致性(Consistency):当事务完成时,数据都处于一致状态。
(3) 隔离性(Isolation): 对数据进行修改的所有并发事务是彼此隔离的,它不以任何方式依赖或影响其他事务。(4) 持久性(Durability):事务提交之后,数据是永久性的,不可再回滚。
3.例子
begin transaction tran_Charge
–定义变量记录错误数
declare @err_nums int
set @err_nums=0
begin try
update Customers set Remain=Remain+100 where id=20
set @err_nums=@err_nums+@@error
update Customers set Remain=Remain-100 where id=21
set @