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

Comment ajouter une colonne "dernière modification" et créée dans une table SQL Server ?

Le created colonne est simple - juste un DATETIME2(3) colonne avec une contrainte par défaut qui est définie lorsqu'une nouvelle ligne est insérée :

Created DATETIME2(3) 
   CONSTRAINT DF_YourTable_Created DEFAULT (SYSDATETIME())

Ainsi, lorsque vous insérez une ligne dans YourTable et ne spécifiez pas de valeur pour Created , il sera réglé sur la date et l'heure actuelles.

Le modified est un peu plus de travail, car vous devrez écrire un déclencheur pour le AFTER UPDATE cas et mettez-le à jour - vous ne pouvez pas dire de manière déclarative à SQL Server de le faire pour vous ....

Modified DATETIME2(3)

puis

CREATE TRIGGER updateModified
ON dbo.YourTable
AFTER UPDATE 
AS
   UPDATE dbo.YourTable
   SET modified = SYSDATETIME()
   FROM Inserted i
   WHERE dbo.YourTable.PrimaryKey = i.PrimaryKey

Vous devez joindre le Inserted pseudo table qui contient toutes les lignes qui ont été mis à jour avec votre table de base sur votre clé primaire pour cette table.

Et vous devrez créer ce AFTER UPDATE déclencheur pour chaque table que vous souhaitez avoir un modified colonne dans.