Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come creare un trigger per tenere traccia degli ultimi dati modificati

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

Inoltre, aggiungi un valore predefinito di GETDATE a dateRegistered in modo che venga registrato automaticamente.

Questo filtra anche gli aggiornamenti fittizi confrontando i valori nuovi e vecchi (INSERITO vs CANCELLATO).

INSERTED e DELETED sono tabelle speciali disponibili solo in trigger.