web-dev-qa-db-fra.com

Comment: créer un déclencheur pour la date de mise à jour automatique avec SQL Server 2008

Ce serait bien de savoir comment créer un déclencheur qui met automatiquement à jour la colonne modifiedDate dans ma table SQL Server:

Tableau TimeEntry

Id (PK)
UserId (FK)
Description
Time
GenDate
ModDate

Code de déclenchement:

+   TR_TimeEntry_UpdateModDate()
+   TR_TimeEntry_InsertGenDate()

Un exemple de mise à jour ModDate serait Nice.

47
Julian

Mon approche:

  • définir un contrainte par défaut sur la colonne ModDate avec une valeur de GETDATE() - cela gère le cas INSERT

  • avoir un AFTER UPDATE déclencheur pour mettre à jour la colonne ModDate

Quelque chose comme:

CREATE TRIGGER trg_UpdateTimeEntry
ON dbo.TimeEntry
AFTER UPDATE
AS
    UPDATE dbo.TimeEntry
    SET ModDate = GETDATE()
    WHERE ID IN (SELECT DISTINCT ID FROM Inserted)
90
marc_s