我正在使用SQL Server 2005,我需要获取特定表中所有行的创建日期时间,遗憾的是该表没有任何“rowverion”或datetime列 (我知道这是一个主要的设计缺陷)。
所以,我想知道SQL服务器是否维护每行插入的日期时间。
评论建议赞赏
此致 迪帕克
答案 0 :(得分:2)
不,SQL Server在创建行时不会自动为行添加时间戳。根据您的建议,将来您可能需要创建一个新的date_created
列并将其默认设置为GETDATE()
:
ALTER TABLE your_table
ADD CONSTRAINT dc_your_table_date_created
DEFAULT GETDATE()
FOR date_created;
如果您愿意,也可以使用触发器作为@Vash suggested in the other answer。
答案 1 :(得分:0)
如果这是一个业务,那么您应该将列添加到表并创建一个触发器AFTER INSERT或UPDATE,将sysdate设置为这些行。或者您可以使用rowversion