zoukankan      html  css  js  c++  java
  • 【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 


  • 相关阅读:
    使用JDBC连接MySql时出现:The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration
    Mysql Lost connection to MySQL server at ‘reading initial communication packet', system error: 0
    mysql-基本命令
    C# 监听值的变化
    DataGrid样式
    C# 获取当前日期时间
    C# 中生成随机数
    递归和迭代
    PHP 时间转几分几秒
    PHP 根据整数ID,生成唯一字符串
  • 原文地址:https://www.cnblogs.com/DoubleEggs/p/5747143.html
Copyright © 2011-2022 走看看