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

Preguntas similare

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








Respuesta Responder a este mensaje
#2 Miguel Egea
08/11/2005 - 22:58 | Informe spam
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 ot.nota = inserted. nota
WHERE ot.Terminado=1


He cambiado ligeramente la sintaxis para que sea ANSI.


Miguel Egea
Microsoft SQL-Server MVP
http://www.portalsql.com
Brigada Anti-cursores
Una mala tarde la tiene cualquiera.." Chiquito de la calzada


"Juan F Botero" escribió en el mensaje
news:
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







Respuesta Responder a este mensaje
#3 Miguel Egea
08/11/2005 - 23:24 | Informe spam
jeje, esto es sincronización!!!!!!! nos ha faltado que se postee en el mismo
minuto :-)

"Alejandro Mesa" escribió en el
mensaje news:
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








Respuesta Responder a este mensaje
#4 Alejandro Mesa
09/11/2005 - 03:03 | Informe spam
Miguel Egea,

jeje, esto es sincronización!!!!!!! nos ha faltado que se postee en el mismo
minuto :-)



Esas son las buenas intenciones de ayudar.

Saludos,

Alejandro Mesa

"Miguel Egea" wrote:

jeje, esto es sincronización!!!!!!! nos ha faltado que se postee en el mismo
minuto :-)

"Alejandro Mesa" escribió en el
mensaje news:
> 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
>>
>>
>>
>>
>>
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida