BEGIN...END (Transact-SQL)
Transact-SQL ステートメントのグループを実行できるように、一連の Transact-SQL ステートメントを囲みます。BEGIN と END は流れ制御言語のキーワードです。
構文
BEGIN
{
sql_statement | statement_block
}
END
引数
- { sql_statement| statement_block }
有効な 1 つの Transact-SQL ステートメント、またはステートメント ブロックで定義したステートメントのグループを指定します。
説明
BEGIN...END ブロックは入れ子にできます。
BEGIN...END ブロック内ではすべての Transact-SQL ステートメントが有効ですが、同じバッチまたはステートメント ブロック内で一緒にグループ化できない Transact-SQL ステートメントもあります。詳細については、「バッチ」および各ステートメントの説明を参照してください。
例
次の例では、BEGIN と END を使用して、まとめて実行する一連の Transact-SQL ステートメントを定義します。BEGIN...END ブロックが指定されていない場合、両方の ROLLBACK TRANSACTION ステートメントが実行され、両方の PRINT メッセージが返されます。
USE AdventureWorks;
GO
BEGIN TRANSACTION;
GO
IF @@TRANCOUNT = 0
BEGIN
SELECT * from Person.Contact 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 tranaction.
*/