SQL Server 以下列事务模式运行。

自动提交事务

每条单独的语句都是一个事务。

显式事务

每个事务均以 BEGIN TRANSACTION 语句显式开始，以 COMMIT 或 ROLLBACK 语句显式结束。

隐式事务

在前一个事务完成时新事务隐式启动，但每个事务仍以 COMMIT 或 ROLLBACK 语句显式完成。

批处理级事务

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

A. 命名事务

以下示例显示如何命名事务。

DECLARE @TranName VARCHAR(20);

SELECT @TranName = 'MyTransaction';

BEGIN TRANSACTION @TranName;

USE AdventureWorks;

DELETE FROM AdventureWorks.HumanResources.JobCandidate

WHERE JobCandidateID = 13;

COMMIT TRANSACTION @TranName;

GO

B. 标记事务

以下示例显示如何标记事务。将标记事务 CandidateDelete。

BEGIN TRANSACTION CandidateDelete

WITH MARK N'Deleting a Job Candidate';

GO

USE AdventureWorks;

GO

DELETE FROM AdventureWorks.HumanResources.JobCandidate

WHERE JobCandidateID = 13;

GO

COMMIT TRANSACTION CandidateDelete;

GO