2010-07-07 6 views
3

J'ai un formulaire avec des données. Tout changement ou insertion, ces données doivent être mises à jour dans deux tableaux différents comme le nom, le salaire dans une table et l'adresse, l'adresse mail dans une autre table.Audit de deux tables différentes dans SQL Server

Comme dans l'exemple ci-dessus, j'ai plusieurs colonnes dans les deux tables.

Maintenant je veux auditer la table. Donc, je pense que je dois créer une vue pour les deux tables et mettre en place un déclencheur pour la vue. Est-ce correct?.

Et aussi j'ai besoin de connaître seulement les colonnes affectées. Comment obtenir les seules colonnes affectées?

Veuillez me suggérer une solution.

Merci!

Répondre

1

Il y a beaucoup de façons de laisser le système gérer tout ce travail de base pour vous - selon la version SQL Server que vous utilisez:

Si vous devez vraiment gérer tout le travail vous-même, vous devez vous familiariser avec les déclencheurs - lisez-les dans Data Points: Exploring SQL Server Triggers.

l'intérieur de votre code de déclenchement, vous avez deux "pseudo-tables":

  • Inserted est la table contenant les valeurs étant insérées (dans un déclencheur INSERT) ou les nouvelles valeurs (dans un déclencheur UPDATE)
  • Deleted est la table contenant les valeurs en cours de suppression (dans un déclencheur SUPPRIMER) ou les anciennes valeurs (dans un déclencheur UPDATE)

Avec ces deux pseudo-tables, vous pouvez avoir accès à toutes les données que vous pourriez avoir besoin .

+0

Qu'est-ce que BOL? Est-ce que c'est lié à ça? J'ai obtenu ce à partir de ce lien http://stackoverflow.com/questions/2684293/change-data-capture-or-change-tracking-same-as-traditional-audit-trail-table – Manoj

+0

@Manoj: BOL = Livres en ligne - Documentation en ligne de SQL Server (MSDN Library) –

Questions connexes