SQL - Funcionalidad de un TRIGGER

 
Vista:

Funcionalidad de un TRIGGER

Publicado por Daniel Rodas (10 intervenciones) el 14/01/2004 23:46:13
Hola, tengo un trigger que debe decidir entre dos opciones segun la operacion que se haga por SQL. La primera es que haga un UPDATE de otra tabla cuando ocurra cualquier cambio en una primera tabla. La segunda es que haga un UPDATE en la primera tabla si se actualiza uno de los campos de esa tabla que tenga valor 0 a valor 1.
Yo ya tengo el codigo para cada situación, y por separado funcionan perfectamente; pero cuando los junto solo hace la segunda opcion.
Adjunto el codigo para que me ayuden a ver que le hace falta. de antemano Gracias.

after update of colestadotran on ptrigger
referencing old as c1
new as c3
when (c1.COLESTADOTRAN <> c3.COLESTADOTRAN AND
c3.COLESTADOTRAN = 1)
(UPDATE ptrigger
SET COLCODEJECREV = (SELECT FINCODEJECUTI
FROM FINEJECUTIVOS
WHERE FINUSERNAME = USER),
COLFCHREVERSI = SYSDATE
WHERE (COLNUMDOCUMEN = c3.COLNUMDOCUMEN) And
(COLTIMESTAMP = c3.COLTIMESTAMP) And
(COLNUMTRANSAC = c3.COLNUMTRANSAC) And
(COLFCHTRANSAC = c3.COLFCHTRANSAC))
FOR EACH ROW
(update COLBUFFERS C2
set COLFLGDIRTYBUFF = 'S'
where ((C2.COLNUMDOCUMEN = ptrigger.COLNUMDOCUMEN)
and (C2.COLFCHACTUALI >= ptrigger.COLFCHAPLICAC)))
FOR EACH ROW;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Funcionalidad de un TRIGGER

Publicado por ^kAnKy^ (14 intervenciones) el 16/01/2004 12:30:07
Tal vez sería mejor que te organizaras de la siguiente forma: utiliza la sentencia IF, de manera que:
IF (cambio en una primera tabla)
IF (uno de los cambios es 0)
//Sentencias del cambio
Else
Sentencias normales
EndIf
Endif

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar