【发布时间】:2010-01-29 21:37:19
【问题描述】:
我有一个带有时间戳列的 sql server 表。有没有办法在不实际更新记录的情况下强制更改时间戳列?
我问的原因是因为我希望在子表中插入/更新/删除记录时更改记录的时间戳。
时间戳可能不是执行此操作的最佳方式。如果没有,我该怎么办?我不想使用 datetime,因为我觉得这不是一个好的版本控制方式。我不想使用整数,因为我不想读取值来增加它。
建议?
【问题讨论】:
-
DateTime 通常用于 LastModified 列..这是不同的东西还是你能澄清为什么你不想使用 DateTime?
-
我阅读了一篇文章,介绍了为什么不应将 DateTime 数据类型用于版本控制和乐观并发。我不记得每一个细节,但在当时是有道理的。我相信这是因为数据类型的精确性,理论上更新可能发生在完全相同的实例上,从而导致竞争条件。
-
仅当数据库未提供日期/时间时 - SQL Server DATETIME 为几分之一秒:msdn.microsoft.com/en-us/library/ms187819.aspx
-
@OMGPonies:SQL Server 的 DATETIME 精确到 3.33 毫秒 - 您可能有多个具有相同时间戳的条目,并且无法将它们分开。这就是 TIMESTAMP 更好的地方,因为它保证是唯一的并且永远不会有两个相同的值
标签: c# .net sql sql-server