Sql server 什么';向MSSQL表添加自动版本信息的最简单方法是什么?

Sql server 什么';向MSSQL表添加自动版本信息的最简单方法是什么?,sql-server,versioning,Sql Server,Versioning,信息应该是2个日期时间列(插入/更新),精度为ms,并且应该在有人插入或更新行时由服务器自动更新。向表中添加列 ALTER TABLE yourTable ADD Inserted datetime NULL, Updated datetime NULL GO 创建更新并插入触发器以更新列 CREATE TRIGGER yourTableInsertTrigger ON yourTable AFTER INSERT AS BEGIN Update yo

信息应该是2个日期时间列(插入/更新),精度为ms,并且应该在有人插入或更新行时由服务器自动更新。

向表中添加列

ALTER TABLE yourTable ADD
    Inserted datetime NULL,
    Updated datetime NULL
GO
创建更新并插入触发器以更新列

CREATE TRIGGER yourTableInsertTrigger 
   ON  yourTable
   AFTER INSERT
AS 
BEGIN
    Update yourTable Set Inserted = getdate()
    from Inserted 
    Where yourTable.Key = Inserted.Key
END
GO


CREATE TRIGGER yourTableUpdateTrigger 
   ON  yourTable
   AFTER UPDATE AS 
BEGIN
    Update yourTable Set Updated = getdate()
    from Updated
    Where yourTable.Key = Updated.Key
END
GO

现在,如果您想真正做到干净,您应该确保这两个列不能通过使用视图而不是直接表访问来更改/更新,以实现对数据的其他访问。另外,如果主键不一致,并且有很多表,我建议您使用CodeGeneration来创建sql。很好。

我认为插入的触发器已经过时了。只需将getdate()作为默认值而不是null添加到插入的列中