我只想在插入或更新记录时自动填充“ModifyDate”列。
我应该使用触发器还是可以使用计算列?
(使用 SSMS2005 和 SQL Server 2005 Express)
最佳答案
INSERTed 部分很简单 - 只需在该列上定义一个默认值,并且当您插入新行时,不要为该列指定值。
更新部分比较棘手 - 你必须写 trigger that fires ON UPDATE ,然后更新该列。我认为在 SQL Server 中没有其他方法可以做到这一点。
问题是:您真的需要实际的日历日期吗?如果没有,如果您只想有一个关于行是否已更改的“标记”,请查看 ROWVERSION column type (以前称为TIMESTAMP
)。
我真的不明白如何为此使用计算列 - 您必须将该日期存储在某处,并使其与 INSERT 和每个后续 UPDATE 保持同步 - 只有触发器才能做到这一点。
关于SQL Server 2005 -修改日期列-使用计算列是实现此目的的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2822844/