SQL Server engine errors

SQL Server 1934 Update Conflict

1934
MediumDatabase Engine

Update Conflict — the row was modified by another transaction after being read

What 1934 Means

The 1934 error on the SQL Server engine errors indicates update conflict — the row was modified by another transaction after being read. This typically occurs due to two concurrent transactions modify the same row under snapshot isolation.

Error 1934 occurs under snapshot-based isolation levels when a transaction attempts to update a row that another committed transaction has already modified since the snapshot was taken. It is a concurrency control mechanism.

Technical Background

Error 1934 is specific to snapshot-based isolation levels (SNAPSHOT and READ_COMMITTED_SNAPSHOT with certain operations). Under these models, SQL Server keeps row versions in tempdb. When a transaction tries to update a row whose version has changed since the snapshot, the engine raises 1934.

This is a classic 'first writer wins' conflict. Unlike pessimistic locking (which blocks the second writer), optimistic isolation allows both readers to proceed but rejects the second writer if a conflict is detected at commit time.

Common Causes

  • Two concurrent transactions modify the same row under snapshot isolation
  • An optimistic concurrency check detects a version mismatch
  • A long-running read transaction conflicts with a committed write

Typical Scenarios

  • Two users edit the same record simultaneously in an application using SNAPSHOT isolation
  • A background batch process updates rows while an interactive session holds a snapshot of the same data

What to Know

Applications using snapshot isolation should include retry logic for update conflicts. The pattern of catching error 1934 and re-reading the latest row version before retrying is the standard concurrency conflict resolution approach.

Frequently Asked Questions

Common questions about SQL Server 1934 error

A deadlock (1205) occurs when two transactions are waiting on each other's locks. Error 1934 is an optimistic concurrency failure where the second writer is rejected because the data changed after the snapshot was taken.