SQL Server 2005 - ModifyDate列 - 使用计算列是否正确实现此方法?

Bri*_*ter 5 sql sql-server sql-server-2005-express

我想在插入或更新记录时自动填充"ModifyDate"列.

我应该使用触发器还是可以使用计算列?

(使用SSMS2005和SQL Server 2005 Express)

mar*_*c_s 5

INSERTed部分很简单 - 只需在该列上定义默认值,并在插入新行时,不要为该列指定值.

UPDATE部分比较棘手 - 您必须编写触发ON UPDATE的触发器,然后更新该列.我不认为在SQL Server中有任何其他方法可以做到这一点.

问题是:你真的需要实际的日历日期吗?如果没有,如果您只想要一个关于行是否已更改的"标记",请查看ROWVERSION列类型(以前称为TIMESTAMP).

我真的没有看到你如何使用计算列 - 你必须在某个地方存储该日期,并使其保持最新状态INSERT和每个后续UPDATE - 只有触发器才能设法执行此操作.