saludos, tengo el siguiente trigger: en sql 2000
CREATE TRIGGER [Trg_BitacoraCosto] ON dbo.Articulo_x_Bodega
FOR UPDATE
AS
begin
declare @Empresa smallint,
@Sucursal smallint,
@Bodega smallint,
@Articulo varchar(13),
@CostoPAc money,
@CostoCAc money,
@CostoPAn money,
@CostoCAn money,
@Maquina varchar(50),
@Aplicacion varchar(50),
@UsuarioNET varchar(30),
@UsuarioSQL varchar(30)
if update(Mon_Costo_Actual) or update(Mon_Costo_Ultima_Compra)
begin
select @Empresa=Emp_Id,
@Sucursal=Suc_Id,
@Bodega=Bod_Id,
@Articulo=Art_Id,
@CostoPAc=isnull(Mon_Costo_Actual,0),
@CostoCAc=isnull(Mon_Costo_Ultima_Compra,0)
from Inserted
select @CostoPAn=isnull(Mon_Costo_actual,0),
@CostoCAn=isnull(Mon_Costo_Ultima_Compra,0)
from Articulo_X_Bodega
where Emp_Id=@Empresa
and Suc_Id=@Sucursal
and Bod_Id=@Bodega
and Art_Id=@Articulo
select @Maquina=hostname,
@Aplicacion=program_name,
@UsuarioNET=nt_username,
@UsuarioSQL=Loginame
from master.dbo.sysprocesses
where spid=@@SPID
insert into Inv_Bitacora_Costos
(Emp_Id,Suc_Id,Bod_Id,Art_Id,Fecha,
Costo_PromedioAc,Costo_CompraAc,
Costo_PromedioAn,Costo_CompraAn,
Maquina,Aplicacion,UsuarioNET,UsuarioSQL)
values
(@Empresa,@Sucursal,@Bodega,@Articulo,getdate(),
@CostoPAc,@CostoCAc,
@CostoPAn,@CostoCAn,
@Maquina,@Aplicacion,@UsuarioNet,@UsuarioSQL)
end
end
-
como verán el trigger se dispara y realiza su accion unicamente con los
campos mon_costo_actual , y mon_costo_ultima_compra,
si por ejemplo yo tengo un mon_costo_actualP00
y ejecuto esto:
update articulo_x_bodega set mon_costo_Actual00 where art_id='8614105'
este select:
select @CostoPAn=isnull(Mon_Costo_actual)
@CostoCAn=isnull(Mon_Costo_Ultima_Compra,0)
from Articulo_X_Bodega
where Emp_Id=@Empresa
and Suc_Id=@Sucursal
and Bod_Id=@Bodega
and Art_Id=@Articulo
me retorna en la variable @CostoPAn los 9000 que yo
estoy poniendo con el update y no los 5000 que tiene el campo en
ese momento, osea, se ejecuta el update, y luego el trigger de manera
que cuando el select va a traer los datos que supuestamente son los
de antes del update mas bien me trae los datos que yo estoy poniendo
porque ya se ejecutó el update.
Gracias por la ayuda que me puedan brindar.
Saludos desde Costa Rica! : )
DISCLAIMER: «Este mensaje se proporciona "como está" sin garantías de
ninguna indole, y no otorga ningún derecho.»
Leer las respuestas