如何跟踪在SQL Server中自动创建/更新行的时间?
问题描述:
有没有办法自动告诉SQL Server所有的表都应该有插入和更新的时间戳?如何跟踪在SQL Server中自动创建/更新行的时间?
这可能是很多重复性的工作来做到这一点?
或者是否有另一种/更有效的方式来处理事务日志?
卡尔
答
你可以有一个RowCreated DATETIME DEFAULT (GETDATE())
来自动处理该行最初创建的日期 - 但是对于RowModified DATETIME
列而言,没有什么可以编写触发器来执行相同的操作。
对于每个表,你必须写一个AFTER UPDATE
触发处理RowModified
列是这样的:
CREATE TRIGGER dbo.trg_YourTableUpdated
ON dbo.YourTable AFTER UPDATE
AS BEGIN
UPDATE dbo.YourTable
SET RowModified = GETDATE()
FROM INSERTED i
WHERE dbo.YourTable.ID = i.ID
END
看起来像我最生动的梦想! – Malartre 2010-12-03 16:05:19