乐观并发问题及改进解决方案

时间:2011-03-19 10:39:35

标签: .net vb.net sql-server-2005

在我们的数据库中,我们有巨大的表格(它最初建于20年前)。我们正在开发它。

某些表包含rowversion和乐观并发。我们想知道是否有一种方法可以将rowversion与某些特定列的修改相对应,但不是全部。在普通情况下,生成的T-SQL将是巨大的。

任何建议?

1 个答案:

答案 0 :(得分:1)

rowversion使用optimistic locking时使用的方法是什么?

标准技巧是在读取行值时读取rowversion。稍后,在UPDATEing时,您确保数据库中的rowversion与上次查看时的rowversion匹配。如果没有,那么你知道其他人修改了你下面的那行:

UPDATE Customers
SET Firstname = 'Faulty', Lastname = 'Orc', ...
WHERE CustomerID = 624429
AND rowversion = @rowversion

您只需要更新要更新的列。

或许你想要多个人独立地对同一行进行更改?在那种情况下,不,你不能这样做。