У меня есть ситуация, когда я использую столбцы RowVersion и столбцы Binary (8), чтобы отслеживать, была ли изменена строка.
В идеале всякий раз, когда:
RowVersion != Binary(8)
Затем произошли изменения в этой записи.Реальная проблема с этим состоит в том, что я не могу найти хороший метод, чтобы установить два столбца равными.Если я обновлю поле Binary, запрос на обновление увеличивает поле RowVersion для этой записи.Я испортил оптимистическое увеличение поля Binary, и оно почти работает.Ключ в том, что я должен увеличить поле Binary на общее количество записей, на которые повлияет запрос UPDATE.Любая идея о том, как приостановить версию строки или определить, что будет в конце оператора обновления, чтобы использовать значение В операторе обновления?
Для ясности, вот пример того, что будет работать, чтобы сделатьсовпадение двух полей:
UPDATE [table] SET BinaryField = MyRowVersion +
(SELECT COUNT(*) FROM [table] WHERE (MyRowVersion != BinaryField))
WHERE (MyRowVersion != BinaryField)