Déclencheur insert anciennes valeurs - des valeurs qui a été mis à jour
J'ai besoin de créer déclencheur dans SQL Server 2008 qui a disparu insérer toutes les valeurs d'une ligne dont la valeur a été modifiée dans la table des Journaux!
Par exemple si j'ai de la table Employés qui ont la colonne id, nom , mot de passe, et je l'ai mise à jour de ce tableau et insérer une nouvelle valeur pour la colonne nom, que j'ai besoin d'insérer des valeurs qui a été dans la table des Employés après la mise à jour dans le tableau de Journal.
Comment je peux faire cela? Merci!
- votre question n'est pas très clair, pouvez-vous la reformuler et éventuellement de l'étendre. Si vous pouvez fournir un exemple de ce que vous aimeriez qu'il pourrait l'aider.
- Par exemple, j'ai la valeur de la présente comme id 3; nom de Jon; mot de passe Jon; Maintenant je mettre à jour la table des Employés et le changement de nom de Jon à la Marque, avant de me mettre à jour ce j'ai besoin d'insérer dans le journal les valeurs du tableau 3,Jon,Jon.
- Je suggère d'ajouter une autre colonne avec NewValue. Il serait plus facile le suivi des changements multiples.
Vous devez vous connecter pour publier un commentaire.
Voici un exemple déclencheur de mise à jour:
Ce sera d'impression:
Dans votre déclencheur, vous avez deux pseudo-tables disponibles,
Inserted
etDeleted
, qui contiennent ces valeurs.Dans le cas d'une mise à JOUR, la
Deleted
tableau contiendra les valeurs anciennes, tandis que lesInserted
tableau présente les nouvelles valeurs.Donc, si vous souhaitez vous connecter la
ID, OldValue, NewValue
dans votre déclencheur, vous devez écrire quelque chose comme:Fondamentalement, vous rejoignez la
Inserted
etDeleted
pseudo-tables, saisir le code (qui est la même, je présume que, dans les deux cas), l'ancienne valeur de laDeleted
tableau, la nouvelle valeur de laInserted
table, et vous stocker le tout dans leLogTable
Dans SQL Server 2008, vous pouvez utiliser la Capture de Données modifiées pour cela. Les détails de la façon de les mettre en place sur une table sont ici http://msdn.microsoft.com/en-us/library/cc627369.aspx
ALTER trigger ETU de l'Employé POUR la mise à JOUR
COMME
insérer dans le Journal (n ° Employé, LogDate, OldName)
sélectionnez Employé, getdate(), le nom
à partir supprimé
aller