GOTO (Transact-SQL)

Altera o fluxo de execução para um rótulo. A instrução ou as instruções Transact-SQL que seguem GOTO são ignoradas e o processamento continua no rótulo. As instruções GOTO e os rótulos podem ser usados em qualquer lugar em um procedimento, lote ou bloco de instruções. As instruções GOTO podem ser aninhadas .

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • label
    É o ponto após o qual o processamento inicia se o destino de um GOTO for esse rótulo. Os rótulos devem seguir as regras para identificadores. Um rótulo pode ser usado como um método de comentário se GOTO for usado.

Comentários

GOTO pode existir em instruções de controle de fluxo condicional, blocos de instruções ou procedimentos, mas não pode ir para um rótulo fora do lote. A ramificação de GOTO pode ir para um rótulo definido antes ou depois de GOTO.

Permissões

As permissões de GOTO são padronizadas para qualquer usuário válido.

Exemplos

O exemplo a seguir mostra como usar GOTO como um mecanismo de ramificação.

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