title | description | author | ms.author | ms.date | ms.service | ms.subservice | ms.topic | f1_keywords | helpviewer_keywords | dev_langs | monikerRange | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Transactions (Transact-SQL) |
Transactions (Transact-SQL) |
rwestMSFT |
randolphwest |
09/25/2017 |
sql |
t-sql |
reference |
|
|
|
>= aps-pdw-2016 || = azuresqldb-current || = azure-sqldw-latest || >= sql-server-2016 || >= sql-server-linux-2017 || = azuresqldb-mi-current |
[!INCLUDE sql-asdb-asdbmi-asa-pdw]
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.
[!INCLUDEssNoVersion] 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 [!INCLUDEtsql] 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 [!INCLUDEssNoVersion].
Note
For special considerations related to Data Warehouse products, see Transactions (Azure Synapse Analytics).
[!INCLUDEssNoVersion] provides the following transaction statements:
:::row:::
:::column:::
BEGIN DISTRIBUTED TRANSACTION
:::column-end:::
:::column:::
ROLLBACK TRANSACTION
:::column-end:::
:::row-end:::
:::row:::
:::column:::
BEGIN TRANSACTION
:::column-end:::
:::column:::
ROLLBACK WORK
:::column-end:::
:::row-end:::
:::row:::
:::column:::
COMMIT TRANSACTION
:::column-end:::
:::column:::
SAVE TRANSACTION
:::column-end:::
:::row-end:::
:::row:::
:::column:::
COMMIT WORK
:::column-end:::
:::column:::
:::column-end:::
:::row-end:::
SET IMPLICIT_TRANSACTIONS (Transact-SQL)
@@TRANCOUNT (Transact-SQL)