• SQL Server 事务


    1. 什么是事务

    SQL Server 事务是数据库操作的一个基本特性,它允许你将一系列数据库操作组合成一个原子单元,这个单元中的所有操作要么全部成功,要么全部失败。事务具有以下四个重要的属性,通常被称为ACID属性

    2、事务的特性

    原子性:对于事务必须是一个整体的工作单元,事务中对数据的操作要么全部执行,要么全部不执行;

      
    一致性:事务完成时,所有的数据都必须保持一致状态;在相关数据库中,所以的规则都必须有事务进行修改,以保证所有数据的完整性;当事务结束时,所有的内部数据结构都必须是正确的;

      
    隔离性:若多个事务对同一数据进行操作,那么当前事务的操作必须与其他事务进行隔离;事务在识别操作数据时,那么是第一个事务处理之前的状态,要么是第二个事务处理之后的状态,事务不会查看中间状态数据;

      
    持久性:当事务提交成功后,事务对数据库中的数据操作会被永久保存下来;

      

    3、如何使用事务

    在SQL Server中,可以使用BEGIN TRANSACTIONCOMMIT TRANSACTIONROLLBACK TRANSACTION来手动管理事务:

     

    • BEGIN TRANSACTION:开始一个新的事务。
    • COMMIT TRANSACTION:提交当前事务,使所有更改永久生效。
    • ROLLBACK TRANSACTION:回滚当前事务,撤销所有更改。

    4、事务的隔离级别

    SQL Server 还支持不同的事务隔离级别,这些级别控制事务的隔离性,防止脏读、不可重复读和幻读:

    • READ UNCOMMITTED:允许脏读,事务可以读取未提交的数据。
    • READ COMMITTED:防止脏读,事务只能读取已提交的数据。
    • REPEATABLE READ:确保在事务过程中,已读取的行在再次读取时不会被其他事务修改。
    • SERIALIZABLE:最高的隔离级别,完全串行化执行事务,防止脏读、不可重复读和幻读。
    • SNAPSHOT:基于行版本控制的隔离级别,可以避免锁定资源。

    5、简单的事务代码

    1. -- 开始事务
    2. BEGIN TRANSACTION;
    3. BEGIN TRY
    4. -- 执行一系列数据库操作
    5. INSERT INTO Table1 (Column1, Column2) VALUES ('Value1', 'Value2');
    6. UPDATE Table2 SET ColumnX = 'NewValue' WHERE SomeCondition;
    7. -- 如果没有错误发生,提交事务
    8. COMMIT TRANSACTION;
    9. END TRY
    10. BEGIN CATCH
    11. -- 如果发生错误,回滚事务
    12. ROLLBACK TRANSACTION;
    13. -- 可以在这里处理错误,例如记录错误日志
    14. END CATCH

    6、注意事项

    • 长事务可能会导致锁定资源,影响数据库性能。
    • 不适当的隔离级别可能会导致数据不一致。
    • 在使用事务时,应该始终注意异常处理和事务的回滚。

  • 相关阅读:
    【力扣每日一题】88. 合并两个有序数组 &双指针 & 辅助数组 & 8.13打卡
    Python编程从入门到实践 第十章:文件和异常 练习答案记录
    考研408,1000道精心打磨的计算机考研题,选它就对了!
    AI重建粒子轨迹,发现新物理学
    Android 9 画中画实现流程
    【PyCharm Community Edition】:打印日志保存成文档
    挑战10个最难回答的Java面试题(附答案)
    香草酸豌豆白蛋白1b纳米粒Vanillic Acid-PA1b|汉黄芩苷牛血清白蛋白纳米粒Wogonoside-BSA|科研试剂
    项目管理(知识体系概述)
    golang之slice并发访问
  • 原文地址:https://blog.csdn.net/a876106354/article/details/141052214