Zero Rows Updated

A service reads a row, edits it in application code, then issues UPDATE items SET qty = 4, version = version + 1 WHERE id = 88 AND version = 12. The statement reports 0 rows updated. What has happened, and what should the service do?

A

The engine detected a deadlock and skipped the statement, so the service should widen its lock timeout

B

Another transaction committed a change to that row first, so the service must re-read and retry

C

Another transaction holds a lock on the row, so the service should wait and issue the same statement again

D

The row was never loaded into the buffer cache, so the service should warm it with a SELECT first