sql >> Database >  >> RDS >> Sqlserver

Een datetime-kolom in SQL Server nodig die automatisch wordt bijgewerkt wanneer de record wordt gewijzigd

SQL Server heeft geen manier om een ​​standaardwaarde te definiëren voor UPDATE .

U moet dus een kolom met standaardwaarde toevoegen om in te voegen:

ADD modstamp DATETIME2 NULL DEFAULT GETDATE()

En voeg een trigger toe aan die tafel:

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

En ja, je moet een identiteitskolom specificeren voor elke trigger.

LET OP:wees voorzichtig bij het invoegen van kolommen in tabellen waarvan u de code van de applicatie niet kent. Als uw app de opdracht INSERT VALUES heeft zonder kolomdefinitie, zal deze zelfs met de standaardwaarde voor nieuwe kolommen fouten veroorzaken.



  1. Hoe het type van een variabele in PL/SQL te bekijken?

  2. Afbeeldingen opslaan in PostgreSQL

  3. MySQL-query's

  4. Realtime gegevensmaskering met behulp van triggers