问题标签 [rowversion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 如何在不更改 rowversion 的情况下更新记录
如果表中包含 rowversion 列,并且您对该行进行更新,则 rowversion 列的值会增加。我知道这是设计和 rowversion 列的目的,但是有什么方法可以使更新操作对 rowversion 值没有影响?
编辑:需要跟踪所有列的更新,但是我们希望避免将某些操作视为新版本。
entity-framework - 如何让实体框架停止设置 rowversion 字段?
我使用实体框架,并且我在表上有一个行版本(时间戳)字段用于并发。但是,在更新实体对象时,它不断尝试将 rowversion 列设置为 null,并且出现错误:
无法将“LmpDemoRequest”上的“VerCol”属性设置为“null”值。您必须将此属性设置为“Byte[]”类型的非空值。
我在实体定义中有 VerCol 列,但我无法删除“Setter”函数。
如何让实体框架停止尝试设置此列?
mysql - MySql 的行版本控制
MySQL 是否有内置的行版本控制机制?类似于 MS SqlServer 中的“时间戳”列。
.net - 是否有包含 RowVersion 值的 Microsoft.SqlServer.Management.Smo.SqlDataType 的替代方法?
Microsoft.SqlServer.Management.Smo.SqlDataType
枚举具有类型的值,但timestamp
没有rowversion
。我正在寻找程序集的更新版本或支持它的替代枚举类型。
现有枚举的值为Timestamp
,但根据rowversion
文档,timestamp
“已弃用,将在未来版本中删除”。我更喜欢避免使用已弃用的东西:)
sql-server - SQL Server:按时间戳聚类;优点缺点
我在 SQL Server 中有一个表,我希望将插入添加到表的末尾(而不是导致它们插入中间的集群键)。这意味着我希望表由一些会不断增加的列聚集。
这可以通过在datetime
列上进行聚类来实现:
但我不能保证两人Things
不会有相同的时间。所以我的要求不能真正通过日期时间列来实现。
我可以添加一个虚拟身份 int
列,并在其上进行聚类:
但是您会注意到我的表格已经包含一timestamp
列;保证单调递增的列。这正是我想要的候选集群键的特性。
所以我将表聚集在rowversion
(aka timestamp
) 列上:
我没有添加一个虚拟标识 int
列 (RowID) 来确保订单,而是使用我已经拥有的。
我正在寻找的是为什么这是一个坏主意的想法;以及其他更好的想法。
注意:社区维基,因为答案是主观的。
sql-server - 此 UPDATE 语句中是否存在可能的竞争条件?
我正在编写一个同步器软件,它将获取一个数据库中的所有更改并将它们同步到另一个数据库。为此,我在表中添加了T
两列:
现在我可以轻松地选择自上次同步以来已更改的所有行:
但是,在执行同步后,我应该使两个字段相等。但是更新行也会更新时间戳,所以我必须这样做:
但我想知道 - 这会一直有效吗?如果我读取了 的值,@@DBTS
然后另一个用户设法在我的行被提交之前在某处插入/更新行怎么办?这是有风险的代码吗?如果是的话 - 它怎么能变得更好?
sql-server - SQL Server RowVersion/时间戳 - 比较
我知道RowVersion
列的值本身并没有用,除了每次更新行时它都会改变。但是,我想知道它们是否对相对(不等式)比较有用。
如果我有一个带有RowVersion
列的表,则以下任一情况为真:
- 同时发生的所有更新(相同的更新语句或相同的事务)在
RowVersion
列中是否具有相同的值? - 如果我更新“A”,然后更新“B”,更新“B”中涉及的行是否会比更新“A”中涉及的行具有更高的值?
谢谢。
sql-server-2005 - SQL Server 2005 无法识别 READ_COMMITTED_SNAPSHOT
我们正在运行 SQL Server 2005 Enterprise SP3,我正在尝试在以 sql server 2005 模式运行的新数据库上启用行版本控制。
查询(针对主数据库):
结果:
有任何想法吗?我已经三重检查了主数据库和 pod-moodle 数据库,它们都在 2005 模式下运行。
c# - 断开连接的 LINQ 更新:rowversion 与带触发器的日期时间?
我们将 LINQ to SQL 和 WCF 用于新的中间层,并且我们使用数据传输对象通过网络传递而不是使用实际的 LINQ 类。我将使用此处概述的一种或另一种方法 -基于时间戳或行版本的 Linq Table Attach() - 以确保更新正常工作并正确处理并发。
为了节省您的阅读时间,基本上您可以在表中使用时间戳/行版本列,或者使用具有默认值和更新触发器的日期时间列 - 无论哪种方式,它都会为您提供一个每次获取新生成值的列发生插入或更新,并且该列是 LINQ 用于检查并发性的列。
我的问题是——哪个更好?我们的许多表中已经有“UpdatedWhen”的日期时间列(但不是全部 - 不要问),但会添加默认值和触发器,或者我们可以只添加 rowversion(我们必须使用现在的时间戳语法,因为我们仍然支持 SQL2005 一段时间)到每个表 - 无论哪种方式我们都在修改数据库以使其工作,所以我想知道是否存在性能差异或任何这两种选择之间需要注意的其他重要区别。我试过在网上和这里搜索 SO,但到目前为止还没有运气。谢谢。
c# - EF4 with SQL Compact 4, rowversion doesn't update on save
I have a simple console app using SQL Compact 4.0 and entity frameworks 4. The database has a single table called Section
which has three columns: Id
(StoreGeneratedPattern: Identity, Type: Int32), Title
(Type: string) and TimeStamp
(StoreGeneratedPattern: Computed, ConcurrencyMode: Fixed, Type: Binary, MaxLength: 8). The TimeStamp column is actually a rowversion type in SQL Compact.
I have the following code in main:
This code throws a concurrency exception because the TimeStamp column is not getting updated from the database after the first SaveChanges() method. Note that it works fine in SQLServer2008.
Is this a bug in Compact or am I missing something?
Thanks,
Darren