Sentencia LEAVE

La sentencia LEAVE detiene la repetición actual de la sentencia WHILE, REPEAT, LOOP o BEGIN que la contiene, identificada por Etiqueta.

La evaluación de la sentencia que la contiene de su condición de bucle (si existe) se elude y el bucle se detiene.

Sintaxis

Ejemplos

En el ejemplo siguiente, el bucle se repite cuatro veces:
DECLARE i INTEGER;
SET i = 1;
X : REPEAT 
  ...
  IF i >= 4 THEN
    LEAVE X;
  END IF;

  SET i = i + 1;
UNTIL
  FALSE
END REPEAT;
1as sentencias LEAVE no tienen por qué estar contenidas directamente por su sentencia etiquetada, lo que hace que las sentencias LEAVE sean especialmente potentes.
DECLARE i INTEGER;
SET i = 0;
X : REPEAT                   -- Outer loop
  ...
  DECLARE j INTEGER;
  SET j = 0;
  REPEAT                     -- Inner loop
    ...
    IF i >= 2 AND j = 1 THEN
      LEAVE X;               -- Outer loop left from within inner loop
    END IF;
    ...
    SET j = j + 1;
  UNTIL
    j >= 3
  END REPEAT;

  SET i = i + 1;
UNTIL
  i >= 3
END REPEAT X;
                             -- Execution resumes here after the leave

Conceptos relacionados
ESQL

Tareas relacionadas
Desarrollo de ESQL

Referencia relacionada
Preferencia de sintaxis
Sentencias ESQL