Оптимистичная проблема параллелизма и улучшения решений - PullRequest
1 голос
/ 19 марта 2011

В нашей базе данных есть гигантские таблицы (изначально она была построена 20 лет назад).Мы находимся в процессе его разработки.

Некоторые таблицы содержат rowversion и оптимистичный параллелизм.Нам было интересно, есть ли способ просто rowversion изменить модификацию некоторых определенных столбцов, но не все из них.В обычном случае T-SQL, который генерируется тогда, будет огромным.

Есть предложения?

1 Ответ

1 голос
/ 19 марта 2011

Какой метод он использует, когда rowversion используется для optimistic locking?

Стандартный трюк заключается в чтении rowversion при чтении значений строк.Позже, при ОБНОВЛЕНИИ, вы убедитесь, что rowversion в базе данных совпадает с версией строки, когда вы в последний раз видели.Если нет, то вы знаете, что кто-то еще изменил строку из-под вас:

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

Вам нужно только обновить столбцы, которые вы хотите обновить.

Возможно, вы хотите чтобы несколько человек независимо вносили изменения в один и тот же ряд?В этом случае нет, вы не можете этого сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...