read committed snapshot является облегченным вариантом уровня изоляции read committed, обсуждавшегося в предыдущем разделе. Это изоляция на уровне оператора, которая означает, что любая другая транзакция может читать подтвержденные значения, которые существовали на момент начала данного оператора. В случае изменений этот уровень изоляции возвращает версии строк в актуальные данные для выборки строк для их изменения и использует блокировки обновления для выбранных строк данных. Актуальные строки данных, которые должны быть изменены, получают исключительные блокировки.
Основное преимущество уровня изоляции read committed snapshot в том, что операции чтения не блокируют обновления, а обновления не блокируют операции чтения. С другой стороны, обновления блокируют другие обновления, потому что устанавливается исключительная блокировка до начала выполнения операции обновления.
Для задания уровня изоляции read committed snapshot вы используете предложение set оператора alter database. После активации в дальнейшем не требуются никакие изменения. Любая транзакция, заданная с уровнем изоляции read committed, Нв будет выполняться под read committed snapshot.