sql >> Databasteknik >  >> RDS >> Sqlserver

Hur lägger jag till en "senast modifierad" och skapad kolumn i en SQL Server-tabell?

Den created kolumnen är enkel - bara en DATETIME2(3) kolumn med en standardbegränsning som ställs in när en ny rad infogas:

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

Så när du infogar en rad i YourTable och ange inte ett värde för Created , kommer den att ställas in på aktuellt datum och tid.

Den modified är lite mer arbete, eftersom du måste skriva en trigger för AFTER UPDATE case och uppdatera det - du kan inte deklarativt säga åt SQL Server att göra detta åt dig....

Modified DATETIME2(3)

och sedan

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

Du måste gå med i Inserted pseudotabell som innehåller alla rader som uppdaterades med din bastabell på din primära nyckel för det bordet.

Och du måste skapa denna AFTER UPDATE trigger för varje tabell som du vill ha en modified kolumn in.



  1. PHP-skript kommer inte att ansluta till databasen?

  2. Hur grupperar man rader med samma värde i sql?

  3. Finns det ett enkelt sätt att få EntityFramework att använda SQL-standardvärden?

  4. Boolean vs tinyint(1) för booleska värden i MySQL