BEGIN...END (Transact-SQL)BEGIN...END (Transact-SQL)

適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel Data WarehouseParallel Data Warehouse適用対象:Applies to: はいSQL ServerSQL Server (サポートされているすべてのバージョン) yesSQL ServerSQL Server (all supported versions) はいAzure SQL データベースAzure SQL DatabaseYesAzure SQL データベースAzure SQL Database はいAzure SQL Managed InstanceAzure SQL Managed InstanceYesAzure SQL Managed InstanceAzure SQL Managed Instance はいAzure Synapse AnalyticsAzure Synapse AnalyticsyesAzure Synapse AnalyticsAzure Synapse Analytics はいParallel Data WarehouseParallel Data WarehouseyesParallel 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 構文表記規則Topic link icon 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

次の例では、BEGINEND を使用して、まとめて実行する一連の 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 AnalyticsParallel Data WarehouseParallel Data WarehouseExamples: Azure Synapse AnalyticsAzure Synapse Analytics and Parallel Data WarehouseParallel Data Warehouse

次の例では、BEGINEND を使用して、まとめて実行する一連の 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)