Y si realmente necesita una marca de tiempo, active un disparador al insertar y actualizar que actualice la columna con el mapa de fecha y hora actual.
CREATE TRIGGER dbo.trgAfterUpdate ON dbo.YourTable
AFTER INSERT, UPDATE
AS
UPDATE dbo.YourTable
SET last_changed = GETDATE()
FROM Inserted i
Para actualizar una sola fila (que ha sido editada o insertada) debe usar
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;
Estos deberían ser todo lo que necesitas. GETUTCDATE() si lo quieres en UTC (que prefiero)
SQL Server conoce absolutamente las filas que procesa
Sí, adivina qué, porque eso es exactamente lo que le dices a SQL Server:actualiza todas las filas de la tabla.
Los conjuntos no tienen una fila actual;) Ahí es donde comienza el problema.
La única forma de hacerlo exactamente como lo desea está en mi respuesta al principio:una marca de tiempo. Sin embargo, debido a los conceptos erróneos, agrego un consejo:obtenga un libro sobre conceptos básicos de SQL.