隐式事务
当连接以隐性事务模式进行操作时,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)。 |