次の方法で共有


GOTO の使用

GOTO ステートメントは、Transact-SQL バッチの実行をラベルまで移動させるときに使用します。GOTO ステートメントとラベルの間にあるステートメントは実行されません。ラベル名は次の構文を使用して定義します。

label_name:

GOTO ステートメントの使用は極力避けてください。GOTO ステートメントを使いすぎると、Transact-SQL バッチのロジックがわかりにくくなることがあります。ほとんどの場合、GOTO ステートメントを使用して実装したロジックは、他の流れ制御ステートメントを使用して実装できます。GOTO ステートメントは、深く入れ子になった流れ制御ステートメントから抜け出す場合に使用することが最適です。

GOTO の目的地であるラベルは、ジャンプ先を示すだけです。ラベルの直前にあるステートメントとラベルの後ろにあるステートメントを分離する働きはありません。ラベルの直前でステートメントを実行するすべてのユーザーは、ラベルをスキップし、ラベルの後のステートメントを実行します。このような状況は、ラベルの直前のステートメントが RETURN などの流れ制御ステートメントでない限り発生します。

次に GOTO の例を示します。

IF (SELECT SYSTEM_USER()) = 'payroll'
   GOTO calculate_salary
-- Other program code would appear here.
-- When the IF statement evaluates to TRUE, the statements
-- between the GOTO and the calculate_salary label are
-- ignored. When the IF statement evaluates to FALSE the
-- statements following the GOTO are executed.
calculate_salary:
   -- Statements to calculate a salary would appear after the label.

参照

その他の技術情報

GOTO (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手