Transactions (Transact-SQL)

**APPLIES TO:** ![yes](media/yes.png)SQL Server (starting with 2008) ![yes](media/yes.png)Azure SQL Database ![yes](media/yes.png)Azure SQL Data Warehouse ![yes](media/yes.png)Parallel Data Warehouse

A transaction is a single unit of work. If a transaction is successful, all of the data modifications made during the transaction are committed and become a permanent part of the database. If a transaction encounters errors and must be canceled or rolled back, then all of the data modifications are erased.

SQL Server operates in the following transaction modes:

Autocommit transactions
Each individual statement is a transaction.

Explicit transactions
Each transaction is explicitly started with the BEGIN TRANSACTION statement and explicitly ended with a COMMIT or ROLLBACK statement.

Implicit transactions
A new transaction is implicitly started when the prior transaction completes, but each transaction is explicitly completed with a COMMIT or ROLLBACK statement.

Batch-scoped transactions
Applicable only to multiple active result sets (MARS), a Transact\-SQL explicit or implicit transaction that starts under a MARS session becomes a batch-scoped transaction. A batch-scoped transaction that is not committed or rolled back when a batch completes is automatically rolled back by Transact\-SQL SQL Server

[!NOTE] For special considerations related to Data Warehouse products, see Transactions (SQL Data Warehouse).

In This Section

SQL Server provides the following transaction statements:

BEGIN DISTRIBUTED TRANSACTION ROLLBACK TRANSACTION
BEGIN TRANSACTION ROLLBACK WORK
COMMIT TRANSACTION SAVE TRANSACTION
COMMIT WORK

See Also

SET IMPLICIT_TRANSACTIONS (Transact-SQL)
[@@TRANCOUNT (Transact-SQL)](../../t-sql/functions/trancount-transact-sql.md)