Skip to content

Latest commit

 

History

History
69 lines (57 loc) · 3.43 KB

File metadata and controls

69 lines (57 loc) · 3.43 KB

title: "Transactions (Transact-SQL) | Microsoft Docs" ms.custom: "" ms.date: "09/25/2017" ms.prod: "sql" ms.prod_service: "database-engine, sql-database, sql-data-warehouse, pdw" ms.service: "" ms.component: "t-sql|language-elements" ms.reviewer: "" ms.suite: "sql" ms.technology:

  • "database-engine" ms.tgt_pltfrm: "" ms.topic: "language-reference" f1_keywords:
  • "Transactions"
  • "Transactions_TSQL" dev_langs:
  • "TSQL" helpviewer_keywords:
  • "transactions [SQL Server]"
  • "transactions [SQL Server], about transactions"
  • "UOW [SQL Server]"
  • "unit of work [SQL Server]" ms.assetid: 1485c375-921a-42af-a871-bb333cc08d3e caps.latest.revision: 24 author: "douglaslMS" ms.author: "douglasl" manager: "craigg" ms.workload: "Active" monikerRange: ">= aps-pdw-2016 || = azuresqldb-current || = azure-sqldw-latest || >= sql-server-2016 || = sqlallproducts-allversions"

Transactions (Transact-SQL)

[!INCLUDEtsql-appliesto-ss2008-all-md]

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 (SQL Data Warehouse).

In This Section

[!INCLUDEssNoVersion] 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)