sql >> Database >  >> RDS >> Sqlserver

Hoe voeg ik een "laatst gewijzigde" en gemaakte kolom toe aan een SQL Server-tabel?

De created kolom is eenvoudig - alleen een DATETIME2(3) kolom met een standaardbeperking die wordt ingesteld wanneer een nieuwe rij wordt ingevoegd:

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

Dus wanneer u een rij invoegt in YourTable en geef geen waarde op voor Created , het wordt ingesteld op de huidige datum en tijd.

De modified is wat meer werk, omdat je een trigger moet schrijven voor de AFTER UPDATE case en update het - u kunt SQL Server niet declaratief vertellen om dit voor u te doen....

Modified DATETIME2(3)

en dan

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

Je moet lid worden van de Inserted pseudo-tabel die alle rijen . bevat die zijn bijgewerkt met uw basistabel op uw primaire sleutel voor die tafel.

En je moet deze AFTER UPDATE . maken trigger voor elke tabel die u wilt hebben modified kolom erin.



  1. MySQL-zelfstudie - SSL configureren en beheren op uw MySQL-server

  2. De uitvoeringstijd van een Mysql-query berekenen op basis van het aantal records

  3. Oracle-equivalent van java System.currentTimeMillis()?

  4. Waarschuwing:mail() [function.mail]:kan geen verbinding maken met mailserver op localhost-poort 25