SQL Server Interview Question #254
What is the difference between RCSI and SNAPSHOT isolation?
Advanced Transactions & Concurrency Senior Advanced
Detailed Explanation
Both use row versioning, but their consistency scope differs.
Under RCSI, each statement generally sees committed data as of the start of that statement. Two SELECT statements in the same transaction can therefore see different committed states.
Under SNAPSHOT isolation, the transaction generally sees a consistent snapshot as of the start of the transaction. SNAPSHOT must be enabled and explicitly selected for the session/transaction.
SNAPSHOT can also raise update-conflict errors when concurrent transactions attempt incompatible modifications.