You are on page 1of 4

CURSO DE ACTUALIZACIÓN

PRACTICA DE FUNCIONES Y TRIGGERS DE SQL SERVER


Objetivo:
 Aprender a crear las funciones en T-SQL.
 Aprender a crear triggers en T-SQL.

1.- Crear la base de datos Taller y diseñar las siguientes tablas con sus respectivas relaciones.

2.- Llenar los registros a la tabla Personal, Usuario y Registro_Habitación como se muestra en
la figura.

Página 1|4
CURSO DE ACTUALIZACIÓN

3.- Crear la siguiente función llamada NombreEmpleado.

CREATE FUNCTION NombreEmpleado(@IDPERSONAL int)


RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @ret VARCHAR(100);
SELECT @ret = DNI+' '+NOMBRE+' '+APELLIDO
FROM PERSONAL p
WHERE IDPERSONAL=@IDPERSONAL
IF (@ret IS NULL)
SET @ret = 'OTROS';
RETURN @ret;
END

Probando la Función antes creada.

SELECT IDUSUARIO,USUARIO,PASSWORD,dbo.NombreEmpleado(IDPERSONAL)
FROM USUARIO

SELECT ID,dbo.NombreEmpleado(IDPERSONAL)FROM REGISTRO_HABITACION

Página 2|4
CURSO DE ACTUALIZACIÓN

4.- Crear las siguientes tablas en la base de datos creada anteriormente. Como se muestra en
la figura.

5.- Crear el siguiente triggers. Que modifica la existencia de un artículo.

CREATE TRIGGER TR_ARTICULO


ON ARTICULO
AFTER UPDATE
AS
BEGIN
INSERT INTO HISTORICO_ARTICULO
(ID_ARTICULO, STOCK, FECHA)
SELECT ID_ARTICULO, STOCK, getdate()
FROM INSERTED
END

Ejecutando Triggers.

UPDATE ARTICULO
SET STOCK = STOCK + 10
WHERE ID_ARTICULO = 1

SELECT * FROM ARTICULO


SELECT * FROM HISTORICO_ARTICULO

Página 3|4
CURSO DE ACTUALIZACIÓN

6.- Crear las siguientes tablas como se muestra en la figura.

7.- Crear el siguiente triggers.

CREATE TRIGGER actualizar_STOCK


ON REGISTRO
FOR INSERT
AS
DECLARE @CODPROD VARCHAR(4),@CANT INT
SELECT @CODPROD=IDVEHICULO,@CANT=CANTIDAD FROM
inserted
UPDATE VEHICULO SET CANTIDAD =CANTIDAD-@CANT
WHERE IDVEHICULO=@CODPROD
GO

Ejecutando el triggers.

INSERT INTO REGISTRO(IDVEHICULO,CANTIDAD,FECHA)


VALUES(1,8,'01/01/2018')

SELECT * FROM REGISTRO


SELECT * FROM VEHICULO

Página 4|4