mettre à jour le champ en utilisant Triggers dans MS SQL

J'ai une question simple concernant les triggersurs en sql.

Je suis complètement nouveau et je ne sais pas comment le gérer.

J'ai une table myshift avec shiftid, starttime stoptime et lastupdate.

create sortinggger ShiftTriggerr on myshift for update as if update(stoptime) update myshift set lastupdated = getdate() 

ce que je veux, c'est quand stoptime va se mettre à jour, le champ lastupdate se mettra à jour avec getdate ().

mais quand je cours ceci ceci ne met pas à jour une rangée mais a mis à jour toutes les rangées. Je ne sais pas comment appliquer vérifier sur ce triggersur

Vous devez utiliser la table virtuelle INSERTED :

 CREATE TRIGGER dbo.ShiftTriggerr ON dbo.myshift AFTER UPDATE AS BEGIN SET NOCOUNT ON; IF UPDATE(stoptime) BEGIN UPDATE A SET lastupdated = getdate() FROM dbo.myshift A INNER JOIN INSERTED B ON A.shiftid = B.shiftid END END 

myshift devrait avoir une key primaire définie, si c'est shiftId , alors,

  create sortinggger ShiftTriggerr on myshift for update as update m set lastupdated = getdate() From myshift m Join inserted i on i.shiftId = m.shiftId