Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Potrzebujesz kolumny daty i godziny w SQL Server, która automatycznie aktualizuje się po zmodyfikowaniu rekordu

SQL Server nie ma sposobu na zdefiniowanie domyślnej wartości dla UPDATE .

Musisz więc dodać kolumnę z domyślną wartością do wstawienia:

ADD modstamp DATETIME2 NULL DEFAULT GETDATE()

I dodaj wyzwalacz do tej tabeli:

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

I tak, musisz określić kolumnę tożsamości dla każdego wyzwalacza.

UWAGA:zachowaj ostrożność podczas wstawiania kolumn w tabelach, w których nie znasz kodu aplikacji. Jeśli Twoja aplikacja ma polecenie INSERT VALUES bez definicji kolumny, zgłosi błędy nawet z wartością domyślną w nowych kolumnach.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiedy należy używać średników w SQL Server?

  2. Konwersja DateTime do formatu RRRR-MM-DD w SQL Server

  3. SQL Server — zwracana wartość po INSERT

  4. Mapowanie kluczy złożonych przy użyciu kodu EF w pierwszej kolejności

  5. Co to jest SQL Server Management Studio (SSMS)?