有没有办法自动告诉SQL Server所有表都应该有插入和更新的时间戳?
这可能需要做很多重复工作?
或者是否有其他/更有效的方法来处理事务日志?
卡尔
答案 0 :(得分:5)
您可以使用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
答案 1 :(得分:4)
答案 2 :(得分:2)
您必须在SQL Server中使用DML triggers实现此目的,对于您可以使用defaults
获取的插入内容,但如果有人传入值,则会覆盖default