Trigger

08/11/2005 - 20:19 por Juan F Botero | Informe spam
Hola
El siguiente trigger que me lleva la auditoria de una tabla cuando es
modificado el campo nota.
la pregunta es si ademas de eso puedo condicionar el trigger a un valor de
un campo de la tabla.


CREATE TRIGGER [auditoria] ON [ot]
FOR UPDATE
AS

IF UPDATE(nota) or UPDATE(nota2)

INSERT INTO ot_audi( tipo_operacion,custom,fecha_alumno,codigo,nota)
select 1,ot.t_custom,ot.t_date,ot.t_codigo,ot.nota from ot, inserted
where ot.t_custom = inserted. t_custom and ot.t_date = inserted. t_date and
ot.nota = inserted. nota


Funciona cada vez que se modifica el campo nota. lo que necesito es que
ademas el campo terminado = 1 de la tabla ot. si terminado = 0 estonces no
inserto ningun registro.
eso se puede hacer?

gracias por sus comentarios
 

Leer las respuestas

#1 Alejandro Mesa
08/11/2005 - 22:40 | Informe spam
Juan F Botero,

Claro que se puede hacer, pero te recomiendo que uses "ansi join" en vez del
estilo viejo. La otra cosa es que la union con la tabla "inserted" debe
hacerse solamente por la clave primaria y no creo que la nota sea parte de
esta.

CREATE TRIGGER [auditoria] ON [ot]
FOR UPDATE
AS

IF UPDATE(nota) or UPDATE(nota2)

INSERT INTO ot_audi( tipo_operacion,custom,fecha_alumno,codigo,nota)
select 1,ot.t_custom,ot.t_date,ot.t_codigo,ot.nota
from ot inner join inserted
on ot.t_custom = inserted. t_custom and ot.t_date = inserted. t_date and
where ot.terminado = 1
go


AMB

"Juan F Botero" wrote:

Hola
El siguiente trigger que me lleva la auditoria de una tabla cuando es
modificado el campo nota.
la pregunta es si ademas de eso puedo condicionar el trigger a un valor de
un campo de la tabla.


CREATE TRIGGER [auditoria] ON [ot]
FOR UPDATE
AS

IF UPDATE(nota) or UPDATE(nota2)

INSERT INTO ot_audi( tipo_operacion,custom,fecha_alumno,codigo,nota)
select 1,ot.t_custom,ot.t_date,ot.t_codigo,ot.nota from ot, inserted
where ot.t_custom = inserted. t_custom and ot.t_date = inserted. t_date and
ot.nota = inserted. nota


Funciona cada vez que se modifica el campo nota. lo que necesito es que
ademas el campo terminado = 1 de la tabla ot. si terminado = 0 estonces no
inserto ningun registro.
eso se puede hacer?

gracias por sus comentarios








Preguntas similares