如何在SQL Server中自动跟踪创建/更新行的时间?

Mal*_*tre 6 t-sql sql-server

有没有办法自动告诉SQL Server所有表都应该有插入和更新的时间戳?

这可能是很多重复性的工作吗?

或者是否有另一种/更有效的方法来处理事务日志?

卡尔

mar*_*c_s 6

您可以使用a 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
Run Code Online (Sandbox Code Playgroud)


Cad*_*oux 4

看看自动审核

这会将列添加到表中并创建 DML 触发器来管理这些列以及维护审计跟踪表

我发现它非常有用

当然可以使用 DDL 触发器来尝试强制执行表设计问题。还可以自动检查元数据的设计味道