Ver Mensaje Individual
  #6  
Antiguo 22-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Ummm, no veo que funcione adecuadamente ese Trigger.
Por empezar supuse que te darías cuenta que necesitas de una tabla más.

Te explico:
Según tu explicación, tu tabla Auditoria tiene los siguientes campos:
tabla
campo
valor anterior
valor actual
etc...

Esto me da la pauta de que por cada campo de interés por auditar se debe insertar un registro en dicha tabla.
Ahora bien, la pregunta aquí es ¿Y que sucede si alguien hace modificaciones a más de un campo de alguna tabla a la que se le lleve el proceso de auditoria? Mejor dicho, la pregunta sería ¿De qué manera identificamos cuales son los cambios que pertenecen a un mismo registro, a una misma acción?

Es necesario contar con un esquema maestro-detalle para conseguir esto. Por ejemplo: una tabla maestra llamada Auditoria que contenga los campos:
IDAuditoria -> PK
Fecha/Hora
Nombre_tabla
IDregistro
etc

Y una tabla Auditoria_detalle, cuyos campos serían en este caso:
IDAuditoria_detalle -> PK
AuditoriaID -> FK
campo
ValorActual
valorAnterior

¿Porqué este esquema? Porque de esta manera conseguimos identificar todos los cambios realizados para un mismo registro de alguna tabla.

De este modo, ante el disparo de algún trigger, realizamos un INSERT dentro de éste en las tabla de detalles, por cada campo que necesitamos auditar.

Tal vez este hilo te sea de ayuda para comprender mejor el panorama.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita