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

Jak dodać „ostatnią zmodyfikowaną” i utworzoną kolumnę w tabeli SQL Server?

created kolumna jest prosta - wystarczy DATETIME2(3) kolumna z domyślnym ograniczeniem, które jest ustawiane po wstawieniu nowego wiersza:

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

Więc po wstawieniu wiersza do YourTable i nie podawaj wartości dla Created , zostanie ustawiona na bieżącą datę i godzinę.

modified to trochę więcej pracy, ponieważ będziesz musiał napisać wyzwalacz dla AFTER UPDATE spraw i zaktualizuj - nie możesz deklaratywnie powiedzieć SQL Serverowi, aby zrobił to za Ciebie....

Modified DATETIME2(3)

a potem

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

Musisz dołączyć do Inserted pseudotabela, która zawiera wszystkie wiersze które zostały zaktualizowane o tabelę podstawową na Twoim kluczu podstawowym dla tego stołu.

I będziesz musiał utworzyć to AFTER UPDATE wyzwalacz dla każdej tabeli, która ma być modified kolumna w.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie hierarchiczne w SQL Server 2005

  2. Instrukcje SQL Server SELECT powodujące blokowanie

  3. Jak przekonwertować DateTime na liczbę z dokładnością większą niż dni w T-SQL?

  4. Problem z równoczesną transakcją SQL Server

  5. Uszkodzone pliki Microsoft Office 2007 ASP.NET 1.1 i SQL Server