Freigeben über


Verwenden von GOTO

Die GOTO-Anweisung führt dazu, dass bei der Ausführung eines Transact-SQL-Batches ein Sprung zu einer Marke erfolgt. Keine der Anweisungen zwischen der GOTO-Anweisung und der Marke wird ausgeführt. Der Name der Marke wird mithilfe der folgenden Syntax definiert:

label_name:

Verwenden Sie die GOTO-Anweisung so selten wie möglich. Bei übermäßiger Verwendung der GOTO-Anweisung kann das Verständnis der Logik eines Transact-SQL-Batches erschwert werden. Die mithilfe von GOTO implementierte Logik kann nahezu immer mit den anderen Anweisungen zur Ablaufsteuerung implementiert werden. GOTO wird am besten zum Herausspringen aus tief geschachtelten Anweisungen zur Ablaufsteuerung verwendet.

Die Marke, die Ziel einer GOTO-Anweisung ist, kennzeichnet nur das Ziel des Sprunges. Die Marke nimmt nicht die notwendigen Schritte vor, um die nachfolgenden Anweisungen von den Anweisungen unmittelbar vor ihr zu trennen. Jeder Benutzer, der die Anweisungen unmittelbar vor der Marke ausführt, lässt die Marke aus und führt die Anweisungen nach der Marke aus. Dies ist immer dann der Fall, wenn die Anweisung unmittelbar vor der Marke nicht selbst eine Anweisung zur Ablaufsteuerung ist, wie z. B. RETURN.

Dies ist ein Beispiel für eine GOTO-Anweisung:

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.

Siehe auch

Verweis