显式事务和隐式事务之间有什么区别?

事务是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表的改动.
原文地址:https://www.cnblogs.com/qiqiBoKe/p/2791626.html