在 SQL Server 上对 rowversion/timestamp 列建立索引的后果

2023-12-20

与我之前关于没有中间漏洞的序列的问题相关(保证读者可见的数字始终递增)在此输入链接描述 https://stackoverflow.com/questions/16518133/how-to-prevent-interim-identity-holes-in-sqlserver我想问一下我设计的解决方案是否有意义。

我创建了一个表rowversion柱子。如果我理解正确的话,SQL Server 保证这些值将始终递增。因为这只是一堆字节,所以查询如下WHERE RowVer > 1567需要进行强制转换,因此会导致表扫描。

因此,我创建了一个可以进行转换的索引视图,并且正在查询该视图。从表面上看,它有效(查询计划显示索引查找),但我不确定是否总是递增如果我浏览索引,保证仍然成立。请帮忙。

Edit
调试时似乎工作正常,但插入到我的表中会阻止任何针对它的选择。需要调查正在持有什么类型的锁。


不,这没有意义

rowversion/timestamp is database唯一,而不是表唯一。并且它会被行的 UPDATE 更改,而不仅仅是 INSERT。因此,这并不是您想要的严格单调递增。

请注意,不保证该数字以任何特定值开始

编辑,什么是“数据库唯一”?

MSDN 说 for rowversion http://technet.microsoft.com/en-us/library/ms182776.aspx(时间戳)

每个数据库都有一个计数器,该计数器随着对数据库中包含 rowversion 列的表执行的每次插入或更新操作而递增。这个计数器是数据库行版本

当前值位于@@DBTS http://technet.microsoft.com/en-us/library/ms187366.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SQL Server 上对 rowversion/timestamp 列建立索引的后果 的相关文章

随机推荐

  • PHP:函数中的 $_GET 和 $_POST?

    我对代码感到惊讶 其中 GET 值 例如 GET username 不作为函数的参数包含在内 什么时候需要包含 POST 和 GET 方法作为函数的参数 什么时候需要包含 POST 和 GET 方法作为参数 功能 我会说 永远 GET an
  • php如何测试文件是否已完全上传

    有没有办法检查文件是否已完全上传到服务器 我的场景 用户通过 ftp 上传文件 我的其他 PHP 任务在 cronjob 中运行 现在我想检查文件是否已上传或用户是否仍在上传 这很重要 因为这样我就知道我是否可以使用该文件或等到它上传 谢谢
  • 有没有办法在 HTML5 中创建自己的 html 标签?

    我想创建类似的东西 menu menu
  • 为什么 C++11 不能将不可复制的函子移动到 std::function ?

    struct A A A A A operator A return this void operator private A const A A operator const A int x int main A a std
  • C# .NET 中 Windows 窗体之间的值

    我有两种形式 一种是主形式 有一个 crystalreportviewer 另一种形式是用户介绍他想要出现在报告中的用户的 ID 问题我希望用户在报告加载信息之前引入ID 因此当用户在报告加载信息之前单击CreateReport按钮时 我创
  • 如何在java中实现自定义http会话?

    我需要用 Java 实现我自己的 HttpSession 版本 我发现很少有信息可以解释如何实现这一壮举 我想我的问题是 无论应用程序服务器的实现如何 如何覆盖现有的 HttpSession 我确实读过一本高质量但相当老的读物 它帮助我实现
  • 为什么在此表达式中用括号替换美元符号 ($) 会导致错误? [复制]

    这个问题在这里已经有答案了 我有这两种表达方式 foldr 0 map uncurry coords 5 7 foldr 0 map uncurry coords 5 7 1 工作打印出结果 但 2 有错误说
  • 是否可以在不修改/压缩提交的情况下将补丁集添加到 Gerrit 审查中

    一个简单的例子 我对 Gerrit 进行了更改 这会破坏 CI 构建或审阅者不满意 然后我用另一个提交修复我的更改 在许多情况下 这是一个小补丁集 我不希望对其进行新的 gerrit 审查 而是希望将其作为原始审查中的新补丁集 我知道这可以
  • 如何创建动态 LINQ 连接扩展方法

    有一个动态库LINQ http en wikipedia org wiki Language Integrated Query扩展方法作为示例发布Visual Studio 2008 http en wikipedia org wiki M
  • ASP.NET 中的类似 WordPress 的插件框架

    我正在开发一个 CMS 我想要一个框架 这样任何人都可以像 WordPress 一样为其添加插件 我找到了很多解决方案 但它们并没有那么有帮助 谁能告诉我一个好的解决办法吗 Thanks 我可能会首先查看托管可扩展性框架 http www
  • 按住鼠标右键移动无边框 Winform,可能使用本机方法

    我有一种情况 我想通过在窗口的客户区域上按住鼠标右键来移动窗口 正如我所说 它的形式是无边界的 我想 本地 移动它 如果可能的话 否则其他答案也可以 我的意思是当你在标题栏上按住鼠标左键时它的行为方式 通过鼠标移动和类似的事情我得到了很多奇
  • VS Code 有没有办法导入 Makefile 项目?

    正如标题所说 我可以从现有的 Makefile 自动填充 c cpp properties json 吗 Edit 对于其他尝试导入 makefile 的人 我找到了一组脚本 它们完全可以实现我想要实现的目标 即通过 VS Code 管理
  • Java与指纹识别

    有人用Java实现指纹识别系统吗 例如 它附带了适用于 linux 和 windows 平台的 java api http www griaulebiometrics com page en us manual fingerprint sd
  • 为什么 ObservableCollection 不会在项目更改时更新?

    我注意到ObservableCollection在 WPF 中 仅通过添加或删除列表中的项目来反映 GUI 中的更改 而不是通过编辑它 这意味着我必须编写自定义类 ObservableCollection 这种行为的原因是什么 Thanks
  • 强制“git merge”将所有差异声明为合并冲突

    在 git merge 中 我希望任何差异 即使通常不是合并冲突 也被视为合并冲突 然后 通过 git mergetool 我可以看到并解决每个差异 我尝试在 gitattributes 中指定 merge 但这似乎不起作用 git che
  • mysql float 返回错误值

    我有一个高精度值的表 存储为Float 当我在表中查询该值时 它返回四舍五入到第一位数字的四舍五入值 但是当我运行下面的查询时 我得到了我存储的值 SELECT MY FLOAT COL 1 FROM MY TABLE Mysql 内部发生
  • Botframework 提示对话框直到用户完成

    我正在使用 Microsoft 的 botbuilder 和 LUIS 创建一个 slack 聊天机器人 有办法继续使用吗builder Prompts text 不断询问用户是否还有用户想要输入的信息 例如for or while环形 例
  • 如何更改 Visual Studio 中的默认构建输出目录?

    在 Visual Studio 2010 到 2013 中 默认情况下 例如 当我创建新的控制台应用程序时 新解决方案将其编译的可执行文件输出到Solution name Project name bin Debug 我希望它们输出到Sol
  • 用于查找数字阶乘的递归函数

    我得到的输出为 24 这是 4 的阶乘 但我应该得到 5 阶乘的输出 即 120 include
  • 在 SQL Server 上对 rowversion/timestamp 列建立索引的后果

    与我之前关于没有中间漏洞的序列的问题相关 保证读者可见的数字始终递增 在此输入链接描述 https stackoverflow com questions 16518133 how to prevent interim identity h