sql >> Databasteknik >  >> RDS >> Sqlserver

Behöver en datetime-kolumn i SQL Server som automatiskt uppdateras när posten ändras

SQL Server har inte ett sätt att definiera ett standardvärde för UPDATE .

Så du måste lägga till en kolumn med standardvärde för att infoga:

ADD modstamp DATETIME2 NULL DEFAULT GETDATE()

Och lägg till en trigger på den tabellen:

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

Och ja, du måste ange en identitetskolumn för varje utlösare.

VARNING:var försiktig när du infogar kolumner i tabeller där du inte känner till koden för programmet. Om din app har INSERT VALUES-kommandot utan kolumndefinition kommer det att ge upphov till fel även med standardvärden i nya kolumner.



  1. Hur får man det första och sista datumet för innevarande år?

  2. ORACLE - Välj Count on a Subquery

  3. Hur man ändrar webbporten i EBS 12.2

  4. Fel vid användning av mönstermatchning som inte liknar någon annan i PostgreSQL