Este documento describe las estructuras condicionales y bucles en SQL. Explica el uso de variables globales y locales, e introduce las estructuras IF, CASE, WHILE y sus usos. IF y CASE se usan para condiciones lógicas, mientras que WHILE permite ejecutar instrucciones de forma repetitiva dependiendo de si una condición es verdadera. BREAK y CONTINUE controlan el flujo de WHILE.
3. Variables
globales
Una variable es una entidad a la que se asigna
un valor, pueden ser locales o globales.
Variables globales, son predefinidas por el
sistema:
@@ERROR Contiene 0 si la última transacción se
ejecutó de forma correcta; en caso contrario, contiene el
último número de error generado por el sistema.
@@IDENTITY Contiene el último valor insertado en una
columna IDENTITY mediante una instrucción insert.
@@VERSION Devuelve laVersión del SQL Server.
@@SERVERNAME Devuelve el Nombre del Servidor.
@@LANGUAGE Devuelve el nombre del idioma en uso.
@@MAX_CONNECTIONS Retorna la cantidad máxima
de conexiones permitidas
C. Román 3
4. Variables locales
Variables locales en TRANSACT SQL, son
definidas por el usuario, su declaración y
asignación tiene la siguiente forma:
DECLARE @variable tipo dato
SET @variable= valor
Ejemplo
DECLARE @precio DECIMAL
SET @precio = 50
SELECT * FROM compra.productos
WHERE P.PRECIOUNIDAD > @precio
C. Román 4
5. Condicionales
Estructura IF
Se utiliza para definir una condición que
determina si se ejecutará la instrucción SQL
siguiente o una instrucción alternativa.
Sintaxis
IF expresión
BEGIN
...
END
ELSE
BEGIN
...
END
C. Román 5
6. Condicionales
Estructura IF
Ejemplo
DECLARE @IDEMP INT, @CANTIDAD INT
SET @IDEMP = 6
SELECT @CANTIDAD = COUNT(*) FROM
VENTAS.PEDIDOSCABE WHERE IDEMPLEADO =
@IDEMP
IF @CANTIDAD = 0
PRINT 'EL EMPLEADO NO HA REALIZADO
NINGÚN PEDIDO‘
ELSE IF @CANTIDAD = 1
PRINT ‘EL EMPLEADO HA REALIZADO 1
PEDIDO‘
ELSE
PRINT ‘EL EMPLEADO HA REALIZADO
PEDIDOS‘
GO
C. Román 6
7. Condicionales
EstructuraCASE
Evalúa una lista de condiciones y devuelve una
de las varias expresiones de resultado posibles.
Sintaxis
CASE expresión
WHEN valor_expresión1 THEN
valor_devuelto1
WHEN valor_expresión2 THEN
valor_devuelto2
ELSE valor_devuelto3
END
C. Román 7
9. Bucles
Estructura
WHILE
Ejecuta en forma repetitiva un conjunto o
bloque de instrucciones SQL siempre que la
condición especificada sea verdadera.
Sintaxis
WHILE expresión
BEGIN
...
END
C. Román 9
10. Bucles
Estructura
WHILE
Ejemplo
DECLARE @COUNTER INT = 1
WHILE @COUNTER < 6
BEGIN
SELECT TOP(1) P.IDPRODUCTO,
P.NOMBREPRODUCTO, P.PRECIOUNIDAD
FROM PRODUCTOS P WHERE
IDPRODUCTO = @COUNTER
SET @COUNTER += 1
END
C. Román 10
11. Bucles
Estructura
WHILE
BREAK permite salir del bucle WHILE.
CONTINUE hace que el bucle WHILE se inicie
de nuevo.
Sintaxis
WHILE expresión
BEGIN
expresion
…
BREAK
END
C. Román 11