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

適用対象: ○SQL Server (2008 以降) ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel 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  

引数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.

RemarksRemarks

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 SQL データ ウェアハウスAzure SQL Data Warehouse および Parallel Data WarehouseParallel Data WarehouseExamples: Azure SQL データ ウェアハウスAzure SQL Data Warehouse 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)