zoukankan      html  css  js  c++  java
  • 显式事务和隐式事务之间有什么区别?

    事务是SQL Server防止你的数据出现不一致状态的基础结构.我们已经学习过事务是如
    何工作的.在这一节中,我们将学习在SQL Server开发环境下如何让事务为你工作.S Q L
    S e r v e r中事务有两种,它们是隐式事务和显式事物.
    21.3.1 隐式事务
    隐式事务是SQL Server为你而做的事务.隐式事务又称自动提交事务.如果运行一条
    I N S E RT语句,SQL Server将把它包装到事务中,如果此I N S E RT语句失败,SQL Server将回滚
    或取消这个事务.每条S Q L语句均被视为一个自身的事务.例如在程序清单2 1 - 2中,有四条
    I N S E RT语句.第一,二,四条是有效的,第三条语句是无效的.因为它违反了该表中有关作
    者标识必须唯一的约束.当程序运行时,第一,二,四条语句执行成功并插入表中.第三条
    第2 1学时SQL Serv e r编程2 0 5
    下载
    语句失败并回滚.
    程序清单21-2 隐式事务
    在日常操作中,你可能依赖于隐式事务.在第三方应用程序中,这些应用程序的开发人
    员则可能使用显式事务.
    21.3.2 显式事务
    显示事务是一种由你自己指定的事务.这种事务允许你自己决定哪批工作必须成功完成,
    否则所有部分都不完成.为了给自己的事务定界,可以使用关键字BEGIN TRANSACTION和
    ROLLBACK TRANSACTION或COMMIT TRANSACTION.
    BEGIN TRANSACTION—这个关键词用来通知SQL Server一个事务就要开始了.
    BEGIN TRANSACTION后面发生的每一条S Q L语句都是同一个事务中的一部分.
    ROLLBACK TRANSACTION—这个关键词用来通知SQL Server自BEGIN TRANSACTION
    后的所有工作都应取消,对数据库中任何数据的改变都被还原,任何已经创建或删除的对
    象被清除或恢复.
    COMMIT TRANSACTION—这个关键词用来通知SQL Server自BEGIN TRANSACTION
    后的全部工作都要完成并成为数据库的一个永久性部分.在同一个事务中,你不能同时
    使用ROLLBACK TRANSACTION和COMMIT TRANSACTION.
    你必须意识到,即使你的脚本中有错误,而你又让SQL Server提交事务,该事务也将执
    行.如果你打算依赖于现实事务保证数据完整性,必须在脚本中建立错误检查机制.程序清
    单2 1 - 3中的代码显示了运用显式事务来回滚对e m p l o y e e s表的改动.
  • 相关阅读:
    codeforces 764 C. Timofey and a tree(dfs+思维)
    codeforces 161 D. Distance in Tree(树形dp)
    codeforces 761 D. Dasha and Very Difficult Problem(二分+贪心)
    codeforces 761 C. Dasha and Password(多维dp)
    codeforces 264 B. Good Sequences(dp+数学的一点思想)
    HTML5 总结-画布-4
    HTML5 总结-拖放-3
    HTML5 总结-音频-2
    HTML5 总结-视频-1
    CSS3 总结-2
  • 原文地址:https://www.cnblogs.com/qiqiBoKe/p/2791626.html
Copyright © 2011-2022 走看看