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

Besoin d'une colonne datetime dans SQL Server qui se met automatiquement à jour lorsque l'enregistrement est modifié

SQL Server n'a aucun moyen de définir une valeur par défaut pour UPDATE .

Vous devez donc ajouter une colonne avec une valeur par défaut pour insérer :

ADD modstamp DATETIME2 NULL DEFAULT GETDATE()

Et ajoutez un déclencheur sur cette table :

CREATE TRIGGER tgr_modstamp
ON **TABLENAME**
AFTER UPDATE AS
  UPDATE **TABLENAME**
  SET ModStamp = GETDATE()
  WHERE **ID** IN (SELECT DISTINCT **ID** FROM Inserted)

Et oui, vous devez spécifier une colonne d'identité pour chaque déclencheur.

ATTENTION :soyez prudent lorsque vous insérez des colonnes dans des tables dont vous ne connaissez pas le code de l'application. Si votre application a la commande INSERT VALUES sans définition de colonne, elle générera des erreurs même avec la valeur par défaut sur les nouvelles colonnes.