Sentencias de Control SQL SERVER
son sentencias de SQL que permiten que el SQL pueda utilizarse de forma similar a la escritura de un programa en un lenguaje de programación estructurado.
Ofrecen la posibilidad de controlar el flujo logicio
eldeclarar y establecer variables
manejar avisos y excepciones
Sentencia de Control IF-ELSE
Nos PermiteEjecutar Instrucciones Condicionales
Sintaxis
IF <Expresion_Logica>
<Instruccion>
ELSE
<Instruccion>
Ejemplo
DECLARE @TotalProductos INT
SELECT @TotalProductos = COUNT(*) FROM Products
IF @TotalProductos > 100
PRINT 'Existen Mas De 100 Productos'
ELSE
PRINT 'Existen Menos De 100 Productos'
Sentencia WHILE
Este verifica una condición, que mientras sea verdadera se mantiene en el ciclo. La sintaxis es la siguiente:
Sentencia
While <Expresion_Logica>
begin
<Grupo_Sentencia>
end
Declare @Contador int
set @Contador = 10
while (@Contador > 0)
begin
print '@Contador = ' + CONVERT(NVARCHAR,@Contador)
set @Contador = @Contador -1
end
Sentencia GOTO
La sentencia goto nos permite desviar el flujo de ejecución hacia una etiqueta. Fué muy utilizada en versiones anteriores de SQL Server conjuntamente con la variable de sistema @@ERROR para el control de errores.
Ejemplo:
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'
Sentencia case
La estructura condicional CASE permite evaluar una expresion y devolver un valor u otro.
Sintaxis:
CASE <expresion>
WHEN <valor_expresion> THEN <valor_devuelto>
WHEN <valor_expresion> THEN <valor_devuelto>
ELSE <valor_devuelto> -- Valor por defecto
END
Ejemplo
DECLARE @PAIS NVARCHAR(20)
SELECT @PAIS =
CASE 'PE'
WHEN 'PE' THEN 'PERU'
WHEN 'ME' THEN 'MEXICO'
WHEN 'PI' THEN 'PISCO'
ElSE 'No Existe Registro'
END
PRINT @PAIS
Sentencia Return
Es Muy Simple Le Pone fin la instrucción que se ejecuta.
Ejemplo:
DECLARE @CONTADOR INT
SET @CONTADOR = 10
WHILE (@CONTADOR >0)
BEGIN
PRINT '@CONTADOR = ' + CONVERT(NVARCHAR,@CONTADOR)
SET @CONTADOR = @CONTADOR -1
IF (@CONTADOR = 5)
RETURN
END
PRINT 'FIN'