类别 全部 - while - case

作者:Norma G 5 年以前

184

Tarea 10 Gallegos Anghelina

Las estructuras de control en SQL son fundamentales para gestionar el flujo de ejecución de consultas y procedimientos almacenados. Entre ellas, destaca la estructura IF, que permite evaluar una expresión booleana y ejecutar diferentes bloques de código según el resultado.

Tarea 10 Gallegos Anghelina

Estructuras de Control en SQL

Estructura GOTO

Se desaconseja el uso de GOTO y se recomienda el uso de TRY - CATCH
Desvia el flujo de ejecución hacia una etiqueta, usada para control de errores
DECLARE @divisor int, @dividendo int, @resultado int    SET @dividendo = 100 SET @divisor = 0 SET @resultado = @dividendo/@divisor     IF @@ERROR > 0 GOTO error PRINT 'No hay error' RETURN error:   PRINT 'Se ha producido una division por cero'

Estructura CASE

Evalua una expresión y devuelve un valor
CASE    WHEN THEN    WHEN THEN    ELSE END

Estructura IF

Admite uso de subconsultas
Evalua una expresión Booleana
IF () BEGIN... END ELSE IF () BEGIN... END

CASE <expresion>

       WHEN <valor_expresion> THEN <valor_devuelto>

       WHEN <valor_expresion> THEN <valor_devuelto>

       ELSE <valor_devuelto> -- Valor por defecto

   END

Instrucción BREAK

El bucle deja de repetirse
DECLARE @contador int SET @contador = 0 WHILE (1 = 1) BEGIN SET @contador = @contador + 1 IF (@contador % 50 = 0) BREAK PRINT 'Iteracion del bucle ' + cast(@contador AS varchar) END

Instrucción CONTINUE

Pasa a la siguiente iteración del bucle
DECLARE @contador int SET @contador = 0 WHILE (@contador < 100) BEGIN SET @contador = @contador + 1 IF (@contador % 2 = 0) CONTINUE PRINT 'Iteracion del bucle ' + cast(@contador AS varchar) END

Bucle WHILE

Permite el uso de subconsultas
DECLARE @coRecibo int WHILE  EXISTS (SELECT * FROM RECIBOS                   WHERE PENDIENTE = 'S')-- Ojo, la subconsulta se ejecuta una vez por cada iteracion del bucle! BEGIN
Se repite mientras la expresión es Verdadera
WHILE BEGIN ... END