log de cambios en tablas

19/11/2003 - 18:11 por Tolo | Informe spam
hola,

me gustaría hacer un log de todos los cambios en mi BD. Para ello me
gustaría montar una tabla como:

Fecha
usuario
tabla
registro
campo
valor antiguo
valor nuevo

y ahí ir añadiento campos.

Claro, pero lo que no quiero es en cada tigger de cada tabla tener que
definir:

if update(campo1)
crea_log(campo1)

if update(campo2)
crea_log(campo2)

...

if update(campon)
crea_log(campon)


alguien tiene por ahí una función más o menos standard para hacer eso de
forma automática (o sea que el sistema recorra todos los campos de la tabla,
compruebe si han dido modificados y genere el log).

gracias
 

Leer las respuestas

#1 Accotto Maximiliano D.
19/11/2003 - 18:16 | Informe spam
Tolo!! alguna comparacion vas a tener q hacer si?

has probado hacer en tu insert con select incorporado
q une la tabla inserted y la tabla de donde queres auditar y hacer un
compare de campos

ej:

insert into auditoria (fecha,usuario,precio_unitario)
select getdate(),suser_sname(),tabla.precio_unitario from
tabla inner join inserted on tabla.id = inserted.id (por donde unimos)
where inserted.precio_unitario <> tabla.precio_unitario

y asi con los demas campos?

como lo ves?






Maximiliano Damian Accotto
" Tolo" escribió en el mensaje
news:ewBow$
hola,

me gustaría hacer un log de todos los cambios en mi BD. Para ello me
gustaría montar una tabla como:

Fecha
usuario
tabla
registro
campo
valor antiguo
valor nuevo

y ahí ir añadiento campos.

Claro, pero lo que no quiero es en cada tigger de cada tabla tener que
definir:

if update(campo1)
crea_log(campo1)

if update(campo2)
crea_log(campo2)

...

if update(campon)
crea_log(campon)


alguien tiene por ahí una función más o menos standard para hacer eso de
forma automática (o sea que el sistema recorra todos los campos de la


tabla,
compruebe si han dido modificados y genere el log).

gracias


Preguntas similares