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 .
Convençõ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.'