关系数据库事务有三种模型,分别是显式事务、隐式事务和自动事务。
1.显式事务显式事务又称拥护自定义事务,是指用显式的方式定义其开始和结束的事务,当使用starttransaction和commit语句时则表示发生显式事务。
2.隐式事务隐式事务是指每一条数据 *** 作语句都自动地成为一个事务,事务的开始是隐式的,事务的结束有明确的标记。即当用户进行数据 *** 作时,系统自动开启一个事务,事务的结束则需手动调用commit或rollback语句来结束当前事务,在当前事务结束后又自动开启一个新事务。
3.自动事务自动事务是指能够自动开启事务并且能够自动结束事务。在事务执行过程中,如果没有出现异常,事务则自动提交;当执行过程产生错误时,则事务自动回滚。
隐式事务又称自动提交事务,就这么点区别,说多点就是下面这一大段事务是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表的改动.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)