概要:このチュートリアルでは、BEGIN...ENDステートメントを使って一連のTransact-SQLステートメントをステートメントブロックにラップする方法を学習します。
BEGIN…END statement
BEGIN...END Statementは、ステートメントブロックを定義するときに使用されます。 ステートメントブロックは、一緒に実行される一連のSQLステートメントで構成されています。 ステートメントブロックはバッチとも呼ばれます。
言い換えれば、ステートメントが文であるなら、BEGIN...ENDステートメントでは段落を定義することが可能です。
 以下に BEGIN...END ステートメントの構文を示します。
Code language: SQL (Structured Query Language) (sql)
 この構文では、たとえば BEGIN と END キーワードの間に一連の SQL ステートメントを配置します。
Code language: SQL (Structured Query Language) (sql)
Output:

PRINT 文によって生成されたメッセージを表示するには、SQL Server Management StudioでMessagesタブをクリックする必要があります。 デフォルトでは、[メッセージ]タブは非表示です。
- この例では、まず、BEGINキーワードで始まり、END
 キーワードで終わるブロックがあります。
- 次に、ブロック内に、定価が10万より大きい製品を検索するSELECTステートメントがあります。
なお、@@ROWCOUNTはシステム変数で、直前のステートメントによって影響を受けた行数を返します。
BEGIN... ENDステートメントは、SQLステートメントの論理ブロックを束ねます。 ストアドプロシージャや関数の最初と最後にBEGIN...ENDを使用することがよくあります。 しかし、厳密には必要ありません。
ただし、IF ELSE文やWHILE文など、複数の文をラップする必要がある場合はBEGIN...ENDが必要です。
入れ子のBEGIN… END
ステートメントブロックは入れ子にすることができます。
次の例を考えてみましょう。
Code language: SQL (Structured Query Language) (sql)
この例では、BEGIN...END ステートメントを使用して、ステートメント ブロック全体を囲んでいます。 このブロックの内部では、 を IF...ELSE ステートメントにも使用しました。
 このチュートリアルでは、SQL Server BEGIN...END ステートメントを使用して Transact-SQL ステートメントをブロックにラップすることについて学習しました。