domingo, 7 de agosto de 2011

Estructuras de control en Transact SQL

Estructura condicional IF

    La estuctura condicional IF permite evaluar una expresion booleana (resultado SI - NO), y ejecutar las operaciones contenidas en el bloque formado por BEGIN END.


DECLARE @coPais int,
 @descripcion varchar(255)
set @coPais = 5
set @descripcion = 'España'

IF EXISTS(SELECT * FROM PAISES 
          WHERE CO_PAIS = @coPais) 
  BEGIN
 UPDATE PAISES
 SET DESCRIPCION = @descripcion
 WHERE CO_PAIS = @coPais
  END

ELSE
  BEGIN
 INSERT INTO PAISES
 (CO_PAIS, DESCRIPCION) VALUES (@coPais, @descripcion)
  END

Estructura condicional CASE

    La estructura condicional CASE permite evaluar una expresion y devolver un valor u otro.
    La sintaxis general de case es:
    CASE <expresion>
        WHEN <valor_expresion> THEN <valor_devuelto>
        WHEN <valor_expresion> THEN <valor_devuelto>
        ELSE <valor_devuelto>  -- Valor por defecto
    END
 
Ejemplo de CASE.
 
DECLARE @Web varchar(100),
            @diminutivo varchar(3)    SET @diminutivo = 'DJK'   
SET @Web = (CASE @diminutivo
                    WHEN 'DJK' THEN 'www.devjoker.com'
                    WHEN 'ALM' THEN 'www.aleamedia.com'
                    ELSE 'www.devjoker.com'
                END)    PRINT @Web 
 

Bucle WHILE

     El bucle WHILE se repite mientras expresion se evalue como verdadero.
    Es el único tipo de bucle del que dispone Transact SQL.

WHILE <expresion>  
    BEGIN
       ...
    END
 
Un ejemplo del bucle WHILE.
 
    DECLARE @contador int
    SET @contador = 0
    WHILE (@contador < 100)
    BEGIN
      SET @contador = @contador + 1

     PRINT 'Iteracion del bucle ' + cast(@contador AS varchar)
    END 

 


No hay comentarios:

Publicar un comentario