Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment créer un déclencheur pour garder une trace des dernières données modifiées

CREATE TRIGGER TRG_Member_U ON Member FOR UPDATE
AS
SET NOCOUNT ON

INSERT MemberLastChanged (memberID, memberName)
SELECT
   D.memberID, D.memberName
FROM
   DELETED D JOIN INSERTED I ON D.memberID = I.memberID
WHERE
   D.memberName <> I.memberName
GO

Ajoutez également une valeur par défaut de GETDATE à dateRegistered afin qu'elle soit enregistrée automatiquement.

Cela filtre également les mises à jour factices en comparant les nouvelles et anciennes valeurs (INSERTED vs DELETED).

INSERTED et DELETED sont des tables spéciales disponibles uniquement dans le déclencheur.