【发布时间】:2020-03-02 23:00:21
【问题描述】:
我想在我的数据库中的现有表中添加一个 rowversion 列,这样我基本上可以按最后一次成功修改每条记录的时间进行排序。我的问题是,添加 rowversion 将如何影响我现有的数据?是否会在这些记录上随机分配 rowversion 值,或者最后一次修改它们? (即使它们在列之前存在)
【问题讨论】:
-
根据定义,表中的行是无序的。但你为什么需要问?只需创建一个小测试表并自己执行此操作。您是否期望分配的值以某种方式与您的
的想法相匹配? -
我只是想知道是否有元数据来表示 SQL Server 将映射到 rowversion 列的每一行的最后修改时间?或者是否可以播种 rowversion 列以根据另一列 asc/desc 分配历史值?
-
这里还有一个挑战 - 无法添加可为空的 rowversion 列。我试过了,即使语法表明你可以,它仍然对表执行数据大小操作。但是,如果您想要
date_modified或类似的列,请将其添加为各种日期时间数据类型之一,并在表上放置触发器以保持正确。 -
简短回答 - 不。引擎将分配值 - 您无法控制该分配。
-
对于现有数据,分配基本上是随机的?
标签: sql sql-server sql-server-2008 rowversion