Sql server 什么';向MSSQL表添加自动版本信息的最简单方法是什么?
信息应该是2个日期时间列(插入/更新),精度为ms,并且应该在有人插入或更新行时由服务器自动更新。向表中添加列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
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添加到插入的列中