Och om du verkligen behöver en tidsstämpel - gör sedan en trigger vid infogning och uppdatering som uppdaterar kolumnen med den aktuella tidskartan.
CREATE TRIGGER dbo.trgAfterUpdate ON dbo.YourTable
AFTER INSERT, UPDATE
AS
UPDATE dbo.YourTable
SET last_changed = GETDATE()
FROM Inserted i
För att uppdatera en enskild rad (som har redigerats eller infogats) bör du använda
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;
Dessa borde vara allt du behöver. GETUTCDATE() om du vill ha det i UTC (vilket jag föredrar)
SQL Server känner absolut till raderna den bearbetar
Ja, gissa vad - för det är precis vad du säger till SQL Server:Uppdatera alla rader i tabellen.
Uppsättningar har ingen aktuell rad;) Det är där problemet börjar.
Det enda sättet att göra det precis som du vill är i mitt svar i början:en tidsstämpel. På grund av missuppfattningarna lägger jag dock till ett råd:skaffa en bok om grunderna i SQL.