【发布时间】:2017-05-17 17:14:37
【问题描述】:
在我读过的许多关于 SQL 时间戳使用的示例中,一个典型的情况是添加时间戳列以防止一种竞争条件,即用户正在更改由于另一个用户“进入”而失去完整性的数据先有”。
更具体地说,在对行发布更新之前,业务逻辑会交叉检查他们认为正在更改的时间戳,以免与行版本控制混淆。
问题
为什么 DATETIME 不足以完成这项任务?事实上,按照这种逻辑——为什么不适合任何唯一的数据类型呢?例如,每次发布更新时的 NEWID()?
【问题讨论】:
-
根据我的经验,一个短整数就足够了。
-
@Pointy - 我看不出有什么理由不这样做,这就是我的困惑所在。这是一个被广泛提供的例子,我不确定我错过了什么。
-
你说的是哪个 DBMS?
-
@a_horse_with_no_name - SQL Server 2014。
-
SQL Server 中的
timestamp确实不存储“日期和时间”。
标签: tsql datetime sql-server-2014