Condividi tramite


GOTO (Transact-SQL)

Reindirizza il flusso di esecuzione a un'etichetta. L'istruzione o le istruzioni Transact-SQL successive a GOTO vengono ignorate e l'elaborazione viene ripresa in corrispondenza dell'etichetta. È possibile utilizzare istruzioni ed etichette GOTO in qualsiasi punto di una procedura, un batch o un blocco di istruzioni. Le istruzioni GOTO possono essere nidificate.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

Define the label: 
label:  
Alter the execution:
GOTO label 

Argomenti

  • label
    Posizione da cui inizia l'elaborazione se la destinazione dell'istruzione GOTO è impostata su tale etichetta. Le etichette devono essere conformi alle regole per gli identificatori. È possibile adottare le etichette come metodo per l'inserimento di commenti indipendentemente dall'utilizzo dell'istruzione GOTO.

Osservazioni

L'istruzione GOTO può essere utilizzata in istruzioni condizionali per il controllo di flusso, in blocchi di istruzioni o in procedure ma non è possibile associarla a un'etichetta all'esterno del batch. Le diramazioni implementate tramite l'istruzione GOTO possono fare riferimento a un'etichetta definita prima o dopo GOTO.

Autorizzazioni

Le autorizzazioni per l'istruzione GOTO vengono assegnate per impostazione predefinita a qualsiasi utente valido.

Esempi

Nell'esempio seguente viene illustrato come utilizzare GOTO come meccanismo di diramazione.

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.'

Vedere anche

Riferimento

Elementi del linguaggio per il controllo di flusso (Transact-SQL)

BEGIN...END (Transact-SQL)

BREAK (Transact-SQL)

CONTINUE (Transact-SQL)

IF...ELSE (Transact-SQL)

WAITFOR (Transact-SQL)

WHILE (Transact-SQL)