Và nếu bạn thực sự cần dấu thời gian - thì hãy kích hoạt chèn và cập nhật để cập nhật cột với sơ đồ thời gian hiện tại.
CREATE TRIGGER dbo.trgAfterUpdate ON dbo.YourTable
AFTER INSERT, UPDATE
AS
UPDATE dbo.YourTable
SET last_changed = GETDATE()
FROM Inserted i
Để cập nhật một hàng (đã được chỉnh sửa hoặc chèn), bạn nên sử dụng
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;
Đây là tất cả những gì bạn cần. GETUTCDATE () nếu bạn muốn nó ở UTC (mà tôi thích hơn)
SQL Server hoàn toàn biết các hàng mà nó xử lý
Vâng, hãy đoán xem - bởi vì đó chính xác là những gì bạn nói với SQL Server:Cập nhật tất cả các hàng trong bảng.
Bộ không có hàng hiện tại;) Đó là nơi vấn đề bắt đầu.
Cách duy nhất để làm điều đó chính xác như bạn muốn đã có trong câu trả lời của tôi ngay từ đầu:dấu thời gian. Tuy nhiên, do những quan niệm sai lầm, tôi thêm một lời khuyên:hãy mua một cuốn sách về kiến thức cơ bản về SQL.