A jeśli naprawdę potrzebujesz znacznika czasu - wykonaj wyzwalacz podczas wstawiania i aktualizacji, który aktualizuje kolumnę o aktualną mapę czasu.
CREATE TRIGGER dbo.trgAfterUpdate ON dbo.YourTable
AFTER INSERT, UPDATE
AS
UPDATE dbo.YourTable
SET last_changed = GETDATE()
FROM Inserted i
Aby zaktualizować pojedynczy wiersz (który został edytowany lub wstawiony) należy użyć
CREATE TRIGGER dbo.trgAfterUpdate ON dbo.YourTable
AFTER INSERT, UPDATE
AS
UPDATE f set LastUpdate=GETDATE()
FROM
dbo.[YourTable] AS f
INNER JOIN inserted
AS i
ON f.rowID = i.rowID;
To powinno być wszystko, czego potrzebujesz. GETUTCDATE() jeśli chcesz to w UTC (co wolę)
SQL Server absolutnie zna wiersze, które przetwarza
Tak, zgadnij co - ponieważ dokładnie to mówisz SQL Server:Zaktualizuj wszystkie wiersze w tabeli.
Zestawy nie mają aktualnego wiersza;) Tu zaczyna się problem.
Jedyny sposób, aby zrobić to dokładnie tak, jak chcesz, znajduje się w mojej odpowiedzi na początku:znacznik czasu. Jednak z powodu nieporozumień dodaję radę:pobierz książkę o podstawach SQL.