Не существует такого понятия, как «уровень изоляции базы данных».То, что вы описываете, - это параметры базы данных, которые называются READ_COMMITTED_SNAPSHOT
:
READ_COMMITTED_SNAPSHOT { ON | OFF } ON
Включает параметр моментального снимка для чтения на уровне базы данных.Когда он включен, операторы DML начинают генерировать версии строк, даже когда ни одна транзакция не использует изоляцию моментальных снимков.Как только эта опция включена, транзакции, указывающие уровень изоляции зафиксированного чтения, используют управление версиями строк вместо блокировки.
Таким образом, когда READ_COMMITTED_SNAPSHOT
включен, транзакция с указанным уровнем изоляции фиксированного чтения вместо этого увидит снимокуровень изоляции.
Важно понимать, что существует другая опция базы данных: ALLOW_SNAPSHOT_ISOLATION
, что также должно быть установлено в ON для возникновения изоляции моментального снимка.См. Изоляция моментального снимка в SQL Server .
В случае сомнений всегда можно проверить sys.dm_tran_current_transaction
, в котором есть столбец с именем transaction_is_snapshot
:
Состояние изоляции снимка.Это значение равно 1, если транзакция запущена в режиме изоляции моментального снимка.В противном случае значение равно 0.
Кроме того, существуют незначительные различия между истинным уровнем изоляции моментального снимка и изоляцией подтвержденного чтения, которая изменяется на снимок с помощью READ_COMMITTED_SNAPSHOT.