Ayuda con este Trigger!...

21/02/2005 - 20:38 por Gabriel South | Informe spam
Hola!

Tengo este trigger que se ejecuta al hacer un UPDATE en un campo especifico,
y queria saber como tomar los valores del registro que fue modificado para
buscar esos datos en otra tabla y modificar otro valores...

Intento obtener los valores del registro que fue modificado con

Select @PO_NUM=EZ9_HAWB, @NR_CON=EZ9_CODINT,
@DT_AUT=EZ9_DT_AUT, @OS=EZ9_OS,
@DOCTO=EZ9_DOCTO, @BANCO=EZ9_BANCO,
@AGENCIA=EZ9_AGENCI, @CONTA=EZ9_CONTA
FROM EZ9010

Pero no toma los del modificado, si no de todos!...

Como hago?????????

Gracias

Gabriel.




Aqui esta mi trigger:

ALTER TRIGGER CheckEZ9
ON dbo.EZ9010
FOR UPDATE
AS

IF UPDATE(EZ9_DT_AUT)
BEGIN
Declare @PO_NUM VARCHAR(15),
@NR_CON VARCHAR(6),
@DT_AUT VARCHAR(8),
@OS VARCHAR(13),
@DOCTO VARCHAR(10),
@BANCO VARCHAR(3),
@AGENCIA VARCHAR(5),
@CONTA VARCHAR(10)

Select @PO_NUM=EZ9_HAWB, @NR_CON=EZ9_CODINT,
@DT_AUT=EZ9_DT_AUT, @OS=EZ9_OS,
@DOCTO=EZ9_DOCTO, @BANCO=EZ9_BANCO,
@AGENCIA=EZ9_AGENCI, @CONTA=EZ9_CONTA
FROM EZ9010

UPDATE EZ4010
SET EZ4_DTAPRO=@DT_AUT
WHERE EZ4_PO_NUM=@PO_NUM AND
EZ4_NR_CON=@NR_CON

END

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
21/02/2005 - 21:15 | Informe spam
Gabriel,

Pudieras postear la estructura de ambas tablas y como estas se relacionan?.
Necesitamos saber cual es la logica para actualizar la segunda tabla.


AMB


"Gabriel South" wrote:

Mostrar la cita
#2 Gabriel South
21/02/2005 - 21:48 | Informe spam
hOLA!

Gracias por tu ayuda, ya descubri como se hace!

Hay que usar la tabla "virtual" INSERTED

tipo

Select @var = (select columna from inserted)

Listo, eso toma el valor del registro actual..

Gabriel




"Alejandro Mesa" escreveu na
mensagem news:
Mostrar la cita
#3 Alejandro Mesa
21/02/2005 - 21:57 | Informe spam
Gabriel,

Siempre y cuando insertes una sola fila. Debes considerar cuando insertes
mas de una fila a la vez, pues el trigger se dispara por cada sentencia y no
por cada fila.

Ejemplo:

use northwind
go

create table t (
colA int not null identity unique,
colB datetime,
colC varchar(25)
)
go

create trigger tr_set_colC_ins on t
after insert
as
set nocount on

update
a
set
a.colC = case when datediff(day, a.colB, getdate()) = 0 then 'Baja' else
null end
from
t as a
inner join
inserted as i
on a.colA = i.colA
go

insert into t (colB) values ('20050221')
insert into t (colB) values ('20050222')
insert into t (colB) values ('20050223')
insert into t (colB) values ('20050221')
go

select * from t
go

drop table t
go


AMB


"Gabriel South" wrote:

Mostrar la cita
Ads by Google
Search Busqueda sugerida