首页 理论教育数据库事务类型-数据库技术与应用教程

数据库事务类型-数据库技术与应用教程

【摘要】:根据事务的设置、用途的不同,SQL Server 2012将事务分为多种类型。用户定义事务在实际应用中,大多数的事务处理采用了用户定义的事务来处理。ROLLBACK语句是取消语句,该语句将事务的操作全部取消,即表示事务操作失效。显式事务显式事务是指每个事务均以BEGⅠN TRANSACTⅠON语句显式开始,以COMMⅠT或ROLLBACK语句显式结束。

根据事务的设置、用途的不同,SQL Server 2012将事务分为多种类型。

1.根据系统的设置分类

根据系统的设置,SQL Server 2012将事务分为两种类型:系统提供的事务(系统事务)和用户定义的事务(用户定义事务)。

(1)系统事务

系统提供的事务是指在执行某些语句时,一条语句就是一个事务。但这时要明确,一条语句的对象既可能是表中的一行数据,也可能是表中的多行数据,甚至是表中的全部数据。因此,只有一条语句构成的事务也可能包含了多行数据的处理。

系统提供的事务语句如下:

ALTER TABLE、CREATE、DELETE、DROP、FETCH、GRANT、ⅠNSERT、OPEN、REVOKE、SELECT、UPDATE、TRUNCATE TABLE

这些语句本身就构成了一个事务。

这条语句本身就构成了一个事务。这条语句由于没有使用条件限制,那么这条语句就是创建包含三个列的表。要么创建全部成功,要么全部失败。

(2)用户定义事务

在实际应用中,大多数的事务处理采用了用户定义的事务来处理。在开发应用程序时,可以使用BEGⅠN TRANSACTⅠON语句来定义明确的用户定义的事务。在使用用户定义的事务时,一定要注意事务必须有明确的结束语句来结束。如果不使用明确的结束语句来结束,那么系统可能把从事务开始到用户关闭连接之间的全部操作都作为一个事务来对待。事务的明确结束可以使用两个语句中的一个:COMMⅠT语句和ROLLBACK语句。COMMⅠT语句是提交语句,将全部完成的语句明确地提交到数据库中。ROLLBACK语句是取消语句,该语句将事务的操作全部取消,即表示事务操作失效。

还有一种特殊的用户定义的事务,这就是分布式事务。事务是在一个服务器上的操作,其保证的数据完整性和一致性是指一个服务器上的完整性和一致性。但是,如果一个比较复杂的环境,可能有多台服务器,那么要保证在多服务器环境中事务的完整性和一致性,就必须定义一个分布式事务。在这个分布式事务中,所有的操作都可以涉及对多个服务器的操作,当这些操作都成功时,那么所有这些操作都提交到相应服务器的数据库中,如果这些操作中有一条操作失败,那么这个分布式事务中的全部操作都将被取消。(www.chuimin.cn)

2.根据运行模式分类

根据运行模式,SQL Server 2012将事务分为四种类型:自动提交事务、显式事务、隐式事务和批处理级事务。

(1)自动提交事务

自动提交事务是指每条单独的语句都是一个事务。

(2)显式事务

显式事务是指每个事务均以BEGⅠN TRANSACTⅠON语句显式开始,以COMMⅠT或ROLLBACK语句显式结束。

(3)隐式事务

隐式事务是指在前一个事务完成时新事务隐式启动,但每个事务仍以COMMⅠT或ROLLBACK语句显式完成。

(4)批处理级事务

该事务只能应用于多个活动结果集(MARS),在MARS会话中启动的T-SQL显式或隐式事务变为批处理级事务。当批处理完成时,没有提交或回滚的批处理级事务自动由SQL Server进行回滚。