【T_SQL】 基础 事务


1、使用 T-SQL 语句来管理事务 
     开始事务:BEGIN TRANSACTION 
     提交事务:COMMIT TRANSACTION 
     回滚(撤销)事务:ROLLBACK TRANSACTION 
2、判断某条语句执行是否出错 
     使用全局变量@@ERROR。@@ERROR 只能判断当前一条 T-SQL 语句执行是否有错,为了判断事务中所有 T-SQL 语句是否有错,我们需要对错误进行累计;如: SET @errorSum=@errorSum+@@error 


3、事务必须具备 ACID 四个属性 

     原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行 
     一致性(Consistency):当事务完成时,数据必须处于一致状态 
     隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务 
     永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性 


4、事务的分类 

    显示事务:用 BEGIN TRANSACTION 明确指定事务的开始,这是常用的事务类型 
    隐性事务:通过设置 SET IMPLICIT_TRANSACTIONS ON 语句,将隐性事务模式设置
 
    为打开,下一个语句自动启动一个新事务。当该事务完成时,再下一个 T-SQL 语句又将启动一个新事务自动提交事务:这是 SQL Server 的默认模式,它将每条单独的 T-SQL 语句视为一个事务,如果成功执行,则自动提交;如果错误,则自动回滚 


5、事务例句 

BEGIN TRANSACTION -- 开始事务 
DECLARE @errorSum INT  --定义变量接收错误语句数 
SET @errorSum = 0 --初始化变量,无错误 
  SQL 语句 1 
  SET @errorSum=@errorSum+@@error 
  SQL 语句 2 
  SET @errorSum=@errorSum+@@error 
  …… 
IF @errorSum <> 0  --产生错误,回滚事务 
   BEGIN 
    ROLLBACK TRANSACTION 
   END 
ELSE --如果无错误,提交事务 
   BEGIN 
    COMMIT TRANSACTION 
   END 
GO 


原文地址:https://www.cnblogs.com/DoubleEggs/p/5747143.html