rowversion 在整个数据库中是唯一的吗?还是每桌?

Nei*_*l P 4 sql-server

如果我在数据库中的两个不同表上有一个 rowversion,它们是否保证在两个表中都是唯一的?如果没有,有没有办法设置这种行为?

我有一个将两个表连接在一起的视图,我想知道是否可以保证这种行为,以便我可以从任一表中获取最大的行号,以形成视图的行版本。

Sco*_*red 8

根据此链接,它“应该”在数据库中的所有表中都是唯一的。

这是“应该”部分 - 文档中有一个警告:

可以使用 SELECT INTO 语句生成重复的 rowversion 值,其中 rowversion 列在 SELECT 列表中。我们不建议以这种方式使用 rowversion。

以下是链接中信息的摘要:

每个数据库都有一个计数器,该计数器随着在数据库中包含 rowversion 列的表上执行的每个插入或更新操作而递增。该计数器是数据库行版本。这会跟踪数据库中的相对时间,而不是可以与时钟关联的实际时间。一张表只能有一个 rowversion 列。每次修改或插入具有 rowversion 列的行时,都会将递增的数据库 rowversion 值插入到 rowversion 列中。