SQL Server 2005 -修改日期列-使用计算列是实现此目的的正确方法吗?

标签 sql sql-server sql-server-2005-express

我只想在插入或更新记录时自动填充“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/

相关文章:

sql - T-SQL : Calculating the Nth Percentile Value from column

sql - Ruby on Rails 保存到数据库

sql - 在生成查询时需要帮助

sql - 如何避免这两个 SQL 语句之间的死锁?

sql-server - 绝对简单的 SQL Server 查询不会返回任何内容

php - 通知 : unserialize() for symfony2 ( connection user )

sql - 从 Presto 中的 JSON 列获取特定值

mysql - 从 SQL Server 迁移到 AWS Aurora

sql-server - SQL 对 SQL Server 2008 Express 的依赖

sql - SQL Server 2005 Express 中的 For 循环?