Usar GOTO

La instrucción GOTO provoca que, en la ejecución de un lote de Transact-SQL, se salte a una etiqueta. Ninguna de las instrucciones situadas entre la instrucción GOTO y la etiqueta se ejecutarán. El nombre de la etiqueta se define con la sintaxis:

label_name:

No abuse de la utilización de la instrucción GOTO. Una utilización excesiva de esta instrucción puede hacer que resulte difícil entender la lógica de un lote de Transact-SQL. La lógica desarrollada con GOTO casi siempre se puede implementar con las instrucciones de control de flujo. La mejor utilización de GOTO se produce cuando se necesita romper la anidación profunda de instrucciones de control de flujo.

La etiqueta que constituye el objetivo de un GOTO sólo identifica el destino del salto. No hace nada para aislar las instrucciones que le siguen de las instrucciones que le preceden. Cualquier usuario que ejecute las instrucciones situadas justo antes de la etiqueta se la saltará y ejecutará las instrucciones posteriores a la misma. Esto ocurrirá a menos que la instrucción que precede a la etiqueta sea a su vez una instrucción de control de flujo como, por ejemplo, RETURN.

A continuación se muestra un ejemplo de instrucción 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.

Vea también

Otros recursos

GOTO (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005