トランザクション (Transact-SQL)Transactions (Transact-SQL)

適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

トランザクションは、1 つの作業を表す単位です。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
各ステートメントは 1 つのトランザクションです。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) にのみ該当します。MARS セッションで開始された Transact-SQLTransact-SQL の明示的または暗黙的なトランザクションは、バッチスコープのトランザクションになります。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)