隐式事务

当连接以隐性事务模式进行操作时,SQL Server 数据库引擎实例将在提交或回滚当前事务后自动启动新事务。无须描述事务的开始,只需提交或回滚每个事务。隐性事务模式生成连续的事务链。

为连接将隐性事务模式设置为打开之后,当数据库引擎实例首次执行下列任何语句时,都会自动启动一个事务:

ALTER TABLE

INSERT

CREATE

OPEN

DELETE

REVOKE

DROP

SELECT

FETCH

TRUNCATE TABLE

GRANT

UPDATE

在发出 COMMIT 或 ROLLBACK 语句之前,该事务将一直保持有效。在第一个事务被提交或回滚之后,下次当连接执行以上任何语句时,数据库引擎实例都将自动启动一个新事务。该实例将不断地生成隐性事务链,直到隐性事务模式关闭为止。

隐性事务模式既可以使用 Transact-SQL SET 语句来设置,也可以通过数据库 API 函数和方法来设置。

注意注意

在多个活动的结果集 (MARS) 会话中,Transact-SQL 隐式事务将变成批范围的事务。如果批范围的事务在批处理完成时还没有提交或回滚,SQL Server 将自动回滚该事务。有关详细信息,请参阅控制事务(数据库引擎)事务语句 (Transact-SQL)