Sentencias de control SQL
IF
Permite la ejecución de una o varias líneas de código según una condición especificada en la cláusula IF, en caso de que la condición sea verdadera se ejecuta el bloque de código, caso contrario se ejecuta el bloque de código especificado en la cláusula ELSE(opcional).
IF (<expresion>)
BEGIN
...
END
ELSE IF (<expresion>)
BEGIN
...
END
ELSE
BEGIN
...
END
WHILE
El bucle WHILE se repite mientras expresión se evalué como verdadero.
Es el único tipo de bucle del que dispone Transact SQL
WHILE <expresión>
BEGIN
END
CASE
La sentencia CASE permite evaluar diferentes opciones, por cada opción se realiza una instrucción específica
CASE <expresion>
WHEN <valor_expresion> THEN <valor_devuelto>
WHEN <valor_expresion> THEN <valor_devuelto>
ELSE <valor_devuelto> -- Valor por defecto
END
GOTO
La sentencia goto nos permite desviar el flujo de ejecución hacia una etiqueta. se desaconseja el uso GOTO, recomendándose el uso de TRY - CATCH para la gestión 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'