UNIVERSIDAD DON BOSCO
Facultad: Ingeniería
Escuela: Computación
CATEDRA
BASE DE DATOS I
DOCENTE
ING. LUIS ANAYA
REPORTE
INVESTIGACION COMPLEMENTARIA GUIA 11
INTEGRANTE
HERNÁNDEZ DOÑO NORBERTO ANTONIO HD101249
GL 02L
CIUDADELA DON BOSCO 26 DE ABRIL 2013
Análisis de Resultados
Utilizando la siguiente base de datos realizar lo siguiente.
CREATE DATABASE eje
GO
USE eje
go
CREATE TABLE producto
(
idproducto CHAR(8) NOT NULL,
nombreproducto VARCHAR(25),
existencia INT NOT NULL,
precio DECIMAL(10,2) NOT NULL,
preciov DECIMAL(10,2) NOT NULL,
constraint pk_idproducto primary key(idproducto)
)
CREATE TABLE pedidos
(
idpedido INT IDENTITY,
idproducto CHAR(8) NOT NULL,
cantidad_pedido INT,
constraint fk_idbod foreign key (idproducto)references
producto(idproducto)
)
INSERT INTO producto VALUES ('prod001','filtros pantalla',5,10,12.5)
INSERT INTO producto VALUES ('prod002','parlantes',7,10,11.5)
INSERT INTO producto VALUES ('prod003','mouse',8,4.5,6)
INSERT INTO producto VALUES ('prod004','monitor',10,60.2,80.0)
INSERT INTO producto VALUES ('prod005','lapiz',5,1.2,2.0)
1- Crear un desencadenador que se active cada vez que se inserte un registro en la tabla pedidos y
otro para la tabla producto.
PRODUCTO:
CREATE TRIGGER insertar_prod ON producto
INSTEAD OF INSERT
AS
IF UPDATE (idproducto)
BEGIN
print'SE HA ACTUALIZADO LA TABLA PRODUCTO'
END
PEDIDOS:
CREATE TRIGGER insertar_ped ON pedidos
INSTEAD OF INSERT
AS
IF UPDATE (idpedido)
BEGIN
print'SE HA ACTUALIZADO LA TABLA PEDIDOS'
END
2- Crear un desencadenador para la tabla producto, que se active cada vez que se inserte un
registro o se actualice la columna precio, la condición para aceptar al inserción o la actualización
es que el precio costo no debe ser mayor que el precio venta.
CREATE TRIGGER insertar_actualizar ON producto AFTER INSERT, UPDATE
AS
DECLARE @pre DECIMAL(10,2), @prev DECIMAL(10,2);
SELECT @pre=precio,@prev=preciov FROM producto WHERE (precio > preciov);
IF @pre >= @prev
BEGIN
ROLLBACK TRANSACTION
PRINT'ERROR, COSTO MAYOR QUE PRECIO DE VENTA';
END
ELSE
BEGIN
COMMIT TRAN
PRINT'SE HA INGRESADO CON EXITO';
END
GO
UPDATE producto SET precio = 16 WHERE idproducto='prod001'
SELECT*FROM producto