文档介绍:第9章事务与锁
事务
锁
事务
事务的概念
事务是并发控制的基本单位。所谓事务,就是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。
如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被清除。
SQL Server以下列事务模式运行。
(1)自动提交事务
每条单独的语句都是一个事务。
(2)显式事务
每个事务均以BEGIN TRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束。
(3)隐式事务
在前一个事务完成时新事务隐式启动,MIT或ROLLBACK语句显式完成。
(4)批处理级事务
只能应用于多个活动结果集(MARS),在MARS会话中启动的Transact-SQL显式或隐式事务变为批处理级事务。
事务的特性
原子性
一致性
隔离性
持久性
事务控制语句
所有的T-SQL语句都是内在的事务。SQL Server 2005还包括事务控制语句,将SQL Server语句集合分组后形成单个的逻辑工作单元。
TRANSACTION语句
BEGIN TRANSACTION语句标记一个显式本地事务的起始点,即事务的开始。
其语法格式为:
BEGIN { TRAN | TRANSACTION }
[ { transaction_name | ***@tran_name_variable }
[ WITH MARK [ 'description' ] ]
]
其中各参数的含义如下。
transaction_name是事务名。
***@tran_name_variable是用户定义的、含有有效事务名称的变量,该变量必须是字符数据类型。
WITH MARK指定在日志中标记事务。
description是描述该标记的字符串。