SQL服务器ROWVERSION定义不准确?

时间:2012-12-03 11:41:00

标签: sql-server sql-server-2008 rowversion

来自msdn

  

每个数据库都有一个计数器,该计数器针对每个插入或递增   对包含a的表执行的更新操作   数据库中的rowversion列

另外

  

要返回数据库的当前rowversion值,请使用@@ DBTS。

我有一个数据库(相信我只有一个表,没有时间戳/行转换字段)

enter image description here

但是当我运行select @@ DBTS时,如果我有一个rowversion列,我会得到的结果:

enter image description here

(p.s。 - 插入/更新 - 不更新此值)。

  • 这个值是多少?

  • 为什么我没有rowversion列?

1 个答案:

答案 0 :(得分:6)

  

这个值是多少?

这是数据库中用于实现rowversion列的计数器的值。

  

为什么我没有没有rowversion列?

您引用的文档说每个数据库都有这样的计数器。它然后表明它将通过对包含rowversion列的表的操作来增加。

没有说这个计数器存在取决于数据库中是否存在任何此类表。


解析为:

  

A)每个数据库都有一个计数器

     

B)增加

     

C)执行的每次插入或更新操作

     

D)在桌子上

     

E)包含rowversion列

     

F)在数据库中。

(E)和(F)是适用于(D)的条件。 (C)表示(D)上的操作导致(B​​)发生。 (B-F)均不影响(A)的真实性。


还没有文档(我能找到)表明它应该从0x0000000000000000或任何其他值开始。鉴于此列的唯一目的是允许确定排序(X发生在Y之后或Y之前),返回的实际值无关紧要。