J'ai un problème avec une base de données à mon travail. Il y a actuellement un audit en place, mais il est difficile de le maintenir, et il manque de quelques points. Donc je le remplace. Je veux faire ceci de manière aussi générique que possible et avoir conçu les tables, et comment tout sera lié et mis à jour. Maintenant, tout va bien et bien, mais je veux être en mesure d'écrire une façon générique d'insérer des enregistrements dans ces tables d'audit. (Sans avoir à entrer une commande pour chaque colonne de chaque table en cours de modification.)MS SQL Audit
Existe-t-il une procédure stockée pour parcourir toutes les colonnes d'une table? Et je voudrais écrire cela de telle manière qu'il fonctionne avec plusieurs tables, et ramasse et vérifie automatiquement les colonnes ajoutées et autres.
Des idées?
EDIT: Je suppose que je devrais clarifier. Je vais vérifier les données contenues dans les tableaux. Mais je vais utiliser la même table (s) pour stocker les données vérifiées pour chaque table dans la base de données.
Et je ne peux pas utiliser les déclencheurs car généralement, lorsqu'une mise à jour se produit, elle se produit sur plusieurs tables, mais j'aimerais que toutes ces mises à jour fassent partie d'un seul ensemble de modifications.
Ce n'est pas un problème, car je peux faire toutes les mises à jour à partir d'un seul processus stocké. Je préfèrerais juste un peu comme une boucle, que je puisse obtenir tous les champs mis à jour, déterminer ceux qui ont changé, et insérer ceux qui ont été modifiés dans la table d'audit.
Et je voudrais le faire sans avoir une longue liste d'instructions if et insérer des instructions pour chaque colonne. (En faisant cela dans une boucle générique, il gérera les colonnes ajoutées automatiquement et ne sera pas dérangé par les colonnes supprimées)
Je préférerais ne pas avoir à le faire de cette façon parce que je devrais connaître chaque colonne à l'avance. Et je voudrais que ce système prenne automatiquement de nouvelles colonnes et ignore les colonnes supprimées sans aucune intervention. Je voudrais faire tout à partir de procs stockés. – TJMonk15
Je peux comprendre vouloir tout faire via procs, mais en utilisant COLUMNS_UPDATED() vous devriez être capable de déterminer quelles colonnes ont été mises à jour sans que vous sachiez quelles colonnes sont dans la table. – cmsjr