Je dois identifier plusieurs mises à jour de colonne dans une table et les stocker dans une table d'audit.
Voici le schéma d'audit:Recherche de plusieurs colonnes mises à jour dans le déclencheur
auditid auditTimestamps updateFieldName oldFieldValue newFieldValue
Nous avons un autre employé de la table avec le schéma:
EmpID EmpName Age Address1 Phone
j'ai écrit déclencheur de mise à jour sur le schéma employé, lorsque l'enregistrement est mis à jour, déclencheur a été lancé et sur la gâchette i vérifier la valeur du champ a été mise à jour et conserve cette information sur le schéma de la table d'audit.
For checking field for update , i have used below code sample:
BEGIN
if update(empName)
begin
set @updatedcolumnname='empName';
set @newvendorname=(SELECT empNameFROM inserted);
set @oldvendorname=(SELECT empNameFROM deleted);
//Here insert logic that insert above find values into audit table.
end
// Same check for all remaining fields(Age,Address1,Phone)
END
Mais cela ne semble pas fonctionner pour moi. c'est insérer toutes les colonnes qui sont mises à jour et non mises à jour dans la table d'audit.
S'il vous plaît suggérer comment pourrait mettre en œuvre ci-dessus fonctionnellement.
Merci
sql server affichant "nom de colonne non valide 'Id'." pour d.Id = i.Id.pls suggérer comment résoudre ceci. –
@Atu Tha.I éditer mon post. Je dois être utilisé EmpID au lieu de Id. –
thx man.pour votre réponse. –