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

Champ d'horodatage de mise à jour automatique de SQL Server

Vous pouvez avoir une contrainte par défaut sur votre DateTime champ qui entraînera l'insertion de la date/heure actuelle lorsque vous insérez une nouvelle ligne.

À partir de là, vous devez travailler avec un AFTER UPDATE déclencheur qui mettra à jour votre colonne date/heure à chaque mise à jour de la ligne.

Vous ne pouvez pas effectuer cette deuxième tâche (mettre à jour un horodatage lors de la mise à jour de la ligne) en utilisant une "formule" comme vous l'avez dit - cela ne fonctionne tout simplement pas de cette façon dans SQL Server.

Vous devez fournir un élément déclencheur dans ce sens :

CREATE TRIGGER trgYourTableUpdateTimestamp
  ON dbo.YourTable FOR UPDATE
AS BEGIN
   UPDATE 
      dbo.YourTable 
   SET 
      YourTimeStampColumn = GETDATE()
   FROM 
      Inserted Ins
   WHERE
      dbo.YourTable.SomeUniqueId = Ins.SomeUniqueId
END