Usando GOTO

A instrução GOTO faz a execução de um lote Transact-SQL saltar para um rótulo. Nenhuma das instruções entre a instrução GOTO e o rótulo é executada. O nome do rótulo é definido com a sintaxe:

        label_name:
      

Use a instrução GOTO moderadamente. O uso excessivo da instrução GOTO pode dificultar o entendimento da lógica de um lote Transact-SQL. A lógica implementada usando GOTO quase sempre pode ser implementada usando as outras instruções de controle de fluxo. GOTO é mais bem usada para fugir de instruções de controle de fluxo profundamente aninhadas.

O rótulo que é o destino de uma GOTO identifica só o destino do salto. O rótulo não faz nada para isolar as instruções que o seguem das instruções imediatamente antes dele. Qualquer usuário que executa as instruções imediatamente antes do rótulo salta o rótulo e executa as instruções depois do rótulo. Isso acontece a menos que a instrução que imediatamente precede o rótulo seja uma instrução controle de fluxo, como RETURN.

O item seguinte é um exemplo de GOTO:

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.

Consulte também

Referência