BEGIN...END (Transact-SQL)BEGIN...END (Transact-SQL)
適用対象:Applies to: SQL ServerSQL Server (サポートされているすべてのバージョン)
SQL ServerSQL Server (all supported versions)
Azure SQL データベースAzure SQL Database
Azure SQL データベースAzure SQL Database
Azure SQL Managed InstanceAzure SQL Managed Instance
Azure SQL Managed InstanceAzure SQL Managed Instance
Azure Synapse AnalyticsAzure Synapse Analytics
Azure Synapse AnalyticsAzure Synapse Analytics
Parallel Data WarehouseParallel Data Warehouse
Parallel Data WarehouseParallel Data Warehouse
SQL ServerSQL Server (サポートされているすべてのバージョン)
SQL ServerSQL Server (all supported versions)
Azure SQL データベースAzure SQL Database
Azure SQL データベースAzure SQL Database
Azure SQL Managed InstanceAzure SQL Managed Instance
Azure SQL Managed InstanceAzure SQL Managed Instance
Azure Synapse AnalyticsAzure Synapse Analytics
Azure Synapse AnalyticsAzure Synapse Analytics
Parallel Data WarehouseParallel Data Warehouse
Parallel Data WarehouseParallel Data Warehouse
Transact-SQLTransact-SQL ステートメントのグループを実行できるように、一連の Transact-SQLTransact-SQL ステートメントを囲みます。Encloses a series of Transact-SQLTransact-SQL statements so that a group of Transact-SQLTransact-SQL statements can be executed. BEGIN と END はフロー制御言語のキーワードです。BEGIN and END are control-of-flow language keywords.
Transact-SQL 構文表記規則
Transact-SQL Syntax Conventions
構文Syntax
BEGIN
{ sql_statement | statement_block }
END
注意
SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。To view Transact-SQL syntax for SQL Server 2014 and earlier, see Previous versions documentation.
引数Arguments
{ sql_statement | statement_block }{ sql_statement | statement_block }
有効な 1 つの Transact-SQLTransact-SQL ステートメント、またはステートメント ブロックで定義したステートメントのグループを指定します。Is any valid Transact-SQLTransact-SQL statement or statement grouping as defined by using a statement block.
解説Remarks
BEGIN...END ブロックは入れ子にできます。BEGIN...END blocks can be nested.
BEGIN...END ブロック内ではすべての Transact-SQLTransact-SQL ステートメントが有効ですが、同じバッチまたはステートメント ブロック内で一緒にグループ化できない Transact-SQLTransact-SQL ステートメントもあります。Although all Transact-SQLTransact-SQL statements are valid within a BEGIN...END block, certain Transact-SQLTransact-SQL statements should not be grouped together within the same batch, or statement block.
例Examples
次の例では、BEGIN
と END
を使用して、まとめて実行する一連の Transact-SQLTransact-SQL ステートメントを定義します。In the following example, BEGIN
and END
define a series of Transact-SQLTransact-SQL statements that execute together. BEGIN...END
ブロックが指定されていない場合、両方の ROLLBACK TRANSACTION
ステートメントが実行され、両方の PRINT
メッセージが返されます。If the BEGIN...END
block were not included, both ROLLBACK TRANSACTION
statements would execute and both PRINT
messages would be returned.
USE AdventureWorks2012
GO
BEGIN TRANSACTION
GO
IF @@TRANCOUNT = 0
BEGIN
SELECT FirstName, MiddleName
FROM Person.Person WHERE LastName = 'Adams'
ROLLBACK TRANSACTION
PRINT N'Rolling back the transaction two times would cause an error.'
END
ROLLBACK TRANSACTION
PRINT N'Rolled back the transaction.'
GO
/*
Rolled back the transaction.
*/
例: Azure Synapse AnalyticsAzure Synapse Analytics、Parallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse AnalyticsAzure Synapse Analytics and Parallel Data WarehouseParallel Data Warehouse
次の例では、BEGIN
と END
を使用して、まとめて実行する一連の SQLSQL ステートメントを定義します。In the following example, BEGIN
and END
define a series of SQLSQL statements that run together. BEGIN...END
ブロックが含まれていない場合、次の例は連続するループになります。If the BEGIN...END
block are not included, the following example will be in a continuous loop.
-- Uses AdventureWorks
DECLARE @Iteration Integer = 0
WHILE @Iteration <10
BEGIN
SELECT FirstName, MiddleName
FROM dbo.DimCustomer WHERE LastName = 'Adams'
SET @Iteration += 1
END
関連項目See Also
ALTER TRIGGER (Transact-SQL) ALTER TRIGGER (Transact-SQL)
フロー制御言語 (Transact-SQL) Control-of-Flow Language (Transact-SQL)
CREATE TRIGGER (Transact-SQL) CREATE TRIGGER (Transact-SQL)
END (BEGIN...END) (Transact-SQL)END (BEGIN...END) (Transact-SQL)