miércoles, 26 de septiembre de 2018

Instrucción GOTO en T-SQL

A partir de SQL Server 2008 existe la instrucción GOTO que altera el flujo de ejecución y lo dirige a una área de código marcada por una etiqueta. Las instrucciones Transact-SQL que siguen a una instrucción GOTO se pasan por alto y el procesamiento continúa en el punto que marca la etiqueta. Las instrucciones GOTO y las etiquetas se pueden utilizar en cualquier punto de un procedimiento, lote o bloque de instrucciones. Las instrucciones GOTO se pueden anidar. Para nuestro ejemplo de uso del GOTO usemos el siguiente script:

DECLARE @Contador int; 
SET @Contador = 1; 
WHILE @Contador < 10 
BEGIN  
    SELECT @Contador 
    IF @Contador = 4 GOTO Opcion_Uno --Jumps to the first branch. 
    IF @Contador = 5 GOTO Opcion_Dos--This will never execute. 
    SET @Contador = @Contador + 1 
END 
Opcion_Uno: 
    SELECT 'Eligio opción uno.' 
    GOTO Salida; --Esto evitará que las opciones se ejecuten una despues de la otra
Opcion_Dos: 
    SELECT 'Eligio opción dos.' 
    GOTO Salida; --Esto evitará que las opciones se ejecuten una despues de la otra
Opcion_Tres: 
    SELECT 'Eligio opción tres.'; 
    GOTO Salida; --Esto evitará que las opciones se ejecuten una despues de la otra
Salida:
    SELECT 'Adios';

Vemos ahora como funciona en la siguiente imágen: goto2