Транзакции (Transact-SQL)Transactions (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ:даSQL Server (начиная с 2008)даБаза данных SQL AzureдаХранилище данных SQL AzureдаParallel Data WarehouseAPPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel 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 ServerSQL Server работает в перечисленных ниже режимах транзакций.operates in the following transaction modes:

Автоматическое принятие транзакцийAutocommit transactions
Каждая отдельная инструкция является транзакцией.Each individual statement is a transaction.

Явные транзакцииExplicit transactions
Каждая транзакция явно начинается с инструкции BEGIN TRANSACTION и явно заканчивается инструкцией COMMIT или ROLLBACK.Each transaction is explicitly started with the BEGIN TRANSACTION statement and explicitly ended with a COMMIT or ROLLBACK statement.

Неявные транзакцииImplicit transactions
Новая транзакция неявно начинается, когда предыдущая транзакция завершена, но каждая транзакция явно завершается инструкцией COMMIT или ROLLBACK.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
Будучи применимой только к множественным активным результирующим наборам (режим MARS), явная или неявная транзакция Transact-SQLTransact-SQL, которая запускается в сеансе режима MARS, становится транзакцией контекста пакета.Applicable only to multiple active result sets (MARS), a Transact-SQLTransact-SQL explicit or implicit transaction that starts under a MARS session becomes a batch-scoped transaction. SQL ServerSQL Server автоматически выполняет откат транзакции контекста пакета, если эта транзакция не зафиксирована или выполнен ее откат при завершении пакета.A batch-scoped transaction that is not committed or rolled back when a batch completes is automatically rolled back by SQL ServerSQL Server.

Примечание

Особые замечания, касающиеся хранилища данных, см. в статье Транзакции (хранилище данных SQL).For special considerations related to Data Warehouse products, see Transactions (SQL Data Warehouse).

в этом разделеIn This Section

SQL ServerSQL Server предоставляет перечисленные ниже инструкции транзакций.provides the following transaction statements:

BEGIN DISTRIBUTED TRANSACTIONBEGIN DISTRIBUTED TRANSACTION ROLLBACK TRANSACTIONROLLBACK TRANSACTION
BEGIN TRANSACTIONBEGIN TRANSACTION ROLLBACK WORKROLLBACK WORK
COMMIT TRANSACTIONCOMMIT TRANSACTION SAVE TRANSACTIONSAVE TRANSACTION
COMMIT WORKCOMMIT WORK

См. также:See Also

SET IMPLICIT_TRANSACTIONS (Transact-SQL) SET IMPLICIT_TRANSACTIONS (Transact-SQL)
@@TRANCOUNT (Transact-SQL)@@TRANCOUNT (Transact-SQL)