CREACION DE TRIGGERS
use Logistica
go
--========--
--Paso 1
select * from Agencia
update Agencia set m_logrado=0
select * from Ventas
--Paso 2
insert into Ventas values('08','A2','P6','V6',25,89)
delete Ventas where c_agencia='07' --como no actualiza la agencia borramos la insercion hecha
--Paso 3 Actualiza el m_logrado en agencia cuando insertas en ventas
create trigger tg_act_agencia
on ventas --donde se va a ejecutar el trigger
for insert --cuando se ejecuta el trigger(insertar)
as
update agencia set m_logrado=m_logrado+(select mto_total from inserted)
where c_agencia=(select c_agencia from inserted)
--==========--
--Paso 4 actualiza el m_logrado de agencia cuando se elimina en ventas
create trigger tg_eli_agencia
on ventas --donde se va a ejecutar el trigger
for delete --cuando se ejecuta el trigger(insertar)
as
update agencia set m_logrado=m_logrado-(select mto_total from deleted)
where c_agencia=(select c_agencia from deleted)
-------------------------------------------
alter table producto add constraint chk_valida_stock
check(c_stock>=10)
-------------------------------------------
--Crear un triger que cuando se inserte un registro en ventas se debe actualizar el stock del producto
create trigger tg_act_Producto
on ventas --donde se va a ejecutar el trigger
for insert --cuando se ejecuta el trigger(insertar)
as
update Producto set c_stock=c_stock-(select cant_vend from inserted)
where c_producto=(select c_producto from inserted)
select * from Ventas
select * from Producto
update Producto set c_stock=100
-------------------------------------------
--realizar el proceso de eliminacion de una venta
create trigger tg_act_eliminar_stock
on ventas
for delete
as
update producto set c_stock=c_stock+(select cant_vend from deleted)
where c_producto=(select c_producto from deleted)
select * from ventas
delete from ventas where n_item=1
------------------------------------------
--insertar un registro en la tabla ventas y actualizar el m_vendido de la tabla vendedor_agencia
create trigger tg_act_Vendedor_Agencia
on ventas --donde se va a ejecutar el trigger
for insert --cuando se ejecuta el trigger(insertar)
as
update Vendedor_Agencia set m_vendido=m_vendido+(select mto_total from inserted)
where c_vendedor=(select c_vendedor from inserted) and c_agencia=(select c_agencia from inserted)
select * from vendedor_agencia
select * from ventas
--======================================================================================================================--
create table Movimiento
(
n_secuencia int identity(1,1)not null,
n_tabla varchar(50),
t_movimineto char(1),
d_fecha datetime,
d_usuario varchar(20),
d_maquina varchar(20),
m_tot_trans money
)
create table Pedido
(
n_pedido int identity(1,1)not null,
c_producto varchar(3),
x_cant_pedido int,
i_aceptado char(1),
i_anulado char(1),
)
----
--cada vez que se inserte en la tabla ventas se debe crear un registro en la tabla movimiento
--en cual se guardan los datos principales del usuario
create trigger tg_inserta_Movimiento
on ventas --donde se va a ejecutar el trigger
for insert --cuando se ejecuta el trigger(insertar)
as
insert into Movimiento
select 'VENTAS','I',getdate(),user,host_name(),mto_total from inserted
select * from movimiento
insert into Ventas values('07','A2','P6','V6',25,89) |