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'