GOTO (Transact-SQL)
Verändert den Kontrollfluss, sodass die Ausführung an einer Marke fortgesetzt wird. Die Transact-SQL-Anweisung oder -Anweisungen, die GOTO folgen, werden ausgelassen, und die Verarbeitung wird an der Marke fortgesetzt. Sie können GOTO-Anweisungen und Marken überall in einer Prozedur, in einem Batch oder einem Anweisungsblock verwenden. GOTO-Anweisungen können geschachtelt werden.
Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version). |
Transact-SQL-Syntaxkonventionen
Syntax
Define the label:
label:
Alter the execution:
GOTO label
Argumente
- label
Ist der Punkt, an dem die Ausführung beginnt, wenn GOTO auf diese Marke zielt. Marken müssen den Regeln für Bezeichner entsprechen. Sie können Marken auch als Kommentarmethode verwenden, unabhängig davon, ob GOTO verwendet wird.
Hinweise
GOTO kann innerhalb von bedingten Anweisungen zur Ablaufsteuerung, Anweisungsblöcken oder Prozeduren vorhanden sein, nicht aber an Marken außerhalb des Batches. Sie können mit GOTO zu einer Marke verzweigen, die vor oder nach GOTO definiert ist.
Berechtigungen
GOTO-Berechtigungen erhalten standardmäßig alle gültigen Benutzer.
Beispiele
Im folgenden Beispiel wird gezeigt, wie Sie GOTO als Verzweigungsmechanismus verwenden können.
DECLARE @Counter int;
SET @Counter = 1;
WHILE @Counter < 10
BEGIN
SELECT @Counter
SET @Counter = @Counter + 1
IF @Counter = 4 GOTO Branch_One --Jumps to the first branch.
IF @Counter = 5 GOTO Branch_Two --This will never execute.
END
Branch_One:
SELECT 'Jumping To Branch One.'
GOTO Branch_Three; --This will prevent Branch_Two from executing.
Branch_Two:
SELECT 'Jumping To Branch Two.'
Branch_Three:
SELECT 'Jumping To Branch Three.';