また、本当にタイムスタンプが必要な場合は、挿入と更新のトリガーを作成して、現在のタイムスタンプで列を更新します。
CREATE TRIGGER dbo.trgAfterUpdate ON dbo.YourTable
AFTER INSERT, UPDATE
AS
UPDATE dbo.YourTable
SET last_changed = GETDATE()
FROM Inserted i
(編集または挿入された)単一の行を更新するには、
を使用する必要があります。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;
これらはあなたが必要とするすべてでなければなりません。 UTCで必要な場合はGETUTCDATE()(私が好む)
SQL Serverは、処理する行を完全に認識しています
ええ、何を推測してください-それはまさにあなたがSQLServerに言うことだからです:テーブルのすべての行を更新してください。
セットには現在の行がありません;)ここから問題が始まります。
あなたが望むようにそれを正確に行う唯一の方法は、最初の私の答えであるタイムスタンプです。ただし、誤解があるため、アドバイスを追加します。SQLの基本に関する本を入手してください。