The strictest pessimistic isolation level: key-range locks are kept until commit or rollback, so no dirty reads, non-repeatable reads or phantoms occur. Applying HOLDLOCK to every table gives the same effect.
Read more: Microsoft Learn
In the Ultra Transcenders books
Each book explains SERIALIZABLE in context, with comparison tables and the common traps.
Terms in this definition
- Isolation level
Chosen with SET TRANSACTION ISOLATION LEVEL, this determines how much one transaction can see of, or be affected by, concurrent work. The levels range from READ UNCOMMITTED and READ COMMITTED through REPEATABLE READ to SNAPSHOT and SERIALIZABLE.
- HOLDLOCK
A table hint that behaves like SERIALIZABLE, keeping key-range locks until the transaction finishes. Adding it to a MERGE upsert prevents two sessions from inserting the same key at once.
- Event
Table in Log Analytics where entries from Windows event logs are kept.