Loading documents preview...
EJERCICIOS CON TRIGGER
1.
Desarrollar un Trigger sobre la tabla CabMov en Inserción para actualizar en una Tabla t_consolidaprod (se entiende que almacena la información de ventas totales por la fecha y el cliente) con la estructura siguiente: IdCliente
varchar(7),
NombreCliente
varchar(50)
Fecha
datetime
Montototal
numeric(15,4)
Parte B pregunta N° 01: Create trigger tr_ins_cliente on cabmov for insert as declare @idcli int declare @nomcli varchar(50) declare @fecha varchar(8) set @idcli=(select idcliente from inserted) set @nombre=(select nombrecliente from cliente where idcliente=@idcli) set @fecha=(select fecha from inserted)
insert t_consolidaprod select idcliente,@nombre, fecha, sum(montofactu) as Montototal from cabmov where idcliente=@idcli and fecha=@fecha group by idcliente, fecha
Otra forma más reducida: Create trigger tr_ins_cliente on cabmov for insert as insert t_consolidaprod select idcliente, nombrecliente, fecha, sum(montofactu) as Montototal from cabmov cab inner join cliente cl on cl.idcliente=cab.idcliente inner join INSERTED ins on ins.idcliente=cab.idlcliente and ins.fecha=cab.fecha group by idcliente, nombrecliente, fecha
2.
Desarrollar un Store Procedure de Inserción, Modificación, Eliminación y Consulta para la tabla Clientes, según el modelo mostrado, se entiende que los parámetros son: IdCliente, Descripcion Oficina, NombreCliente, NumRuc, Descripcion Tipo Cliente, Direccion, Descripcion Distrito, NumTelef. Se sobreentiende que existen una tabla TipoCliente (que tiene los campos codigo y descripcion) y la tabla Distrito (tiene Codigo y Descripcion) que están relacionados con la tabla Cliente mostrada (puntos)
a. Desarrollar un trigger de actualización sobre la tabla DETALLEALQUILER , para que almacene los vehículos que fueron devueltos fuera de la fecha límite de devolución, con la sgte estructura: (3 puntos) IdCliente
IdAuto
Placa
FechaDevuelto
create trigger tr_mod_detallealquiler on detallealquiler for update as declare @idauto int declare @idcliente int declare @placa varchar(10) declare @fechadevuelto declare @idalquiler int
set @idalquiler=(select idalquiler from inserted) set @idauto=(select idauto from inserted) set @idcliente=(select idcliente from alquiler where idquiler=@idalquiler) set @placa=(select placa from vehiculo where idauto in (select idauto from inserted))
set @fechadevuelto=(select fechadevolver from inserted) set @fechadevolucion=(select fechadevolucion from inserted)
if @fechadevuelto>@fechadevolucion insert hist_devol_alquiler values(@idcliente,@idauto,@placa,@fechadevuelto)
versión más directa: create trigger tr_mod_detallealquiler on detallealquiler for update as insert hist_devol_alquiler select al.idcliente, veh.idauto, veh.placa, ins.fechadevolver from inserted ins inner join alquiler al on ins.idaquiler=al.idaquiler inner join vehiculo veh on veh.iadauto=ins.idauto where fechadevuelto>fechadevolucion
b. Desarrollar un trigger de inserción sobre la tabla DETALLEALQUILER información de cada auto alquilado: (4 puntos) Idauto Marca Placa alquileres)
N° veces alquiler
para consolidar
Monto (Consolidado de todos los