Szy*_*ega 2 sql-server timestamp rowversion indexed-view
与我之前关于没有临时孔的序列(保证读者可见的数字总是递增)的问题相关,请在此处输入链接描述,我想问一下我设计的解决方案是否有意义.
我创建了一个带有rowversion列的表.如果我理解正确,SQL Server保证值将始终递增.因为这只是一堆字节,所以查询WHERE RowVer > 1567会需要强制转换,因此会导致表扫描.
所以我创建了一个索引视图来执行转换,我正在查询视图.它在表面上运行(查询计划显示索引查找)但是我不确定如果我浏览索引,总是递增的保证是否仍然成立.请帮忙.
编辑
它似乎在调试时工作正常,但插入到我的表块阻止任何选择.需要调查正在持有哪种锁.
不,这没有意义
rowversion/timestamp是数据库唯一,而不是表唯一.它将被UPDATE更改为row(s),而不仅仅是INSERT.因此,这并不是你想要的严格单调增加.
请注意,不保证该数字从任何特定值开始
编辑,什么是"数据库唯一"?
MSDN说的是rowversion(时间戳)
每个数据库都有一个计数器,该计数器针对在数据库中包含rowversion列的表上执行的每个插入或更新操作递增.此计数器是数据库rowversion
当前值是 @@DBTS
| 归档时间: |
|
| 查看次数: |
1652 次 |
| 最近记录: |