web-dev-qa-db-fra.com

Mise à jour de la gâchette T-SQL

J'ai une table avec 3 champs [ID, nom, lâché].
[.

Lorsque je gère plutôt une mise à jour sur la table, je voudrais que ce champ soit réinitialisé sur le getDate actuel ().

CREATE TRIGGER dbo.Table1_Updated
   ON  dbo.Table1
   AFTER UPDATE
AS 
BEGIN
    SET NOCOUNT ON;
    UPDATE dbo.Table1 SET LastUpdated = GETDATE()
END
GO

Mais parce que je n'ai pas de clause où, tous les enregistrements sont mis à jour.

Question :
[.____] Où aurais-je la valeur de l'ID de l'enregistrement mis à jour sur un déclencheur de mise à jour?

Le fait que je mettais à la mise à jour d'un champ de la table dans la gâchette, rappelez-vous un nouvel événement de déclenchement (etc.)?

16
SF Developer

De "inséré", la table insérée est courante à la fois à l'insert, à la mise à jour de la gâchette.

CREATE TRIGGER dbo.Table1_Updated
ON dbo.Table1
FOR INSERT, UPDATE /* Fire this trigger when a row is INSERTed or UPDATEd */
AS BEGIN
  UPDATE dbo.Table1 SET dbo.Table1.LastUpdated = GETDATE()
  FROM INSERTED
  WHERE inserted.id=Table1.id
END
26
dani herrera
Update table1
set LastUpdated = getdate()
from inserted i, table1 a
where i.pk1 = a.pk1
1
Alex Polkhovsky
CREATE TRIGGER dbo.refreshModifyDate 
      ON  tStoreCategoriesImages
      FOR INSERT, UPDATE
AS 
  BEGIN
    SET NOCOUNT ON;
        update t set t.ModifyDate = getdate() from tStoreCategoriesImages t 
        inner join inserted i on i.ID = t.ID
  END
GO