Og hvis du virkelig har brug for et tidsstempel - så lav en trigger ved indsættelse og opdatering, der opdaterer kolonnen med det aktuelle tidskort.
CREATE TRIGGER dbo.trgAfterUpdate ON dbo.YourTable
AFTER INSERT, UPDATE
AS
UPDATE dbo.YourTable
SET last_changed = GETDATE()
FROM Inserted i
For at opdatere en enkelt række (som er blevet redigeret eller indsat) skal du bruge
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;
Disse burde være alt hvad du behøver. GETUTCDATE() hvis du vil have det i UTC (hvilket jeg foretrækker)
SQL Server kender absolut de rækker, den behandler
Ja, gæt hvad - for det er præcis, hvad du fortæller SQL Server:Opdater alle rækker i tabellen.
Sæt har ingen aktuel række;) Det er der problemet starter.
Den eneste måde at gøre det præcis, som du vil, er i mit svar i begyndelsen:et tidsstempel. På grund af misforståelserne tilføjer jeg dog et råd:få en bog om grundlæggende SQL.