gpt4 book ai didi

sql-server - SQL Server RowVersion/时间戳 - 比较

转载 作者:行者123 更新时间:2023-12-01 21:16:24 26 4
gpt4 key购买 nike

我知道 RowVersion 列的值本身并没有用,只是每次更新行时它都会发生变化。但是,我想知道它们对于相对(不平等)比较是否有用。

如果我有一个带有 RowVersion 列的表,则满足以下任一条件:

  • 同时发生的所有更新(相同的更新语句或相同的事务)在 RowVersion 列中是否具有相同的值?
  • 如果我先更新“A”,然后更新“B”,更新“B”中涉及的行的值是否会高于更新“A”中涉及的行的值?

谢谢。

最佳答案

<强> From MSDN :

每个数据库都有一个计数器,随着对数据库中包含 rowversion 列的表执行的每次插入或更新操作而递增。该计数器是数据库rowversion。这跟踪数据库内的相对时间,而不是与时钟关联的实际时间。 每次修改或插入具有 rowversion 列的增量> 数据库 rowversion value 插入到 rowversion 列中。

http://msdn.microsoft.com/en-us/library/ms182776.aspx

  • 据我了解,系统中实际上没有同时发生任何事情。这意味着所有 rowversion 都应该是唯一的。我敢说,如果同一个表中允许重复,它们实际上将毫无用处。 MSDN 的立场也证明了 rowversion 不会重复,即不将它们用作主键,不是因为这会导致违规,而是因为这会导致外键问题。
  • 根据 MSDN,“rowversion 数据类型只是一个递增的数字......”所以是的,后来更大。

对于增量的问题,MSDN 指出,“[rowversion] 跟踪数据库内的相对时间”,这表明它不是一个流动整数递增,但基于时间。然而,这个“时间”并没有揭示确切的时间,而是相对于其他行插入/修改一行的时间。

关于sql-server - SQL Server RowVersion/时间戳 - 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4470807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com