Это то, что вам, вероятно, нужно:
`ALTER DATABASE AdventureWorks
SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE AdventureWorks
SET ALLOW_SNAPSHOT_ISOLATION ON;
`
Тогда иди и используй
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
в ваших запросах. По данным BOL:
Поведение READ COMMITTED зависит от настройки опции базы данных READ_COMMITTED_SNAPSHOT:
Если для READ_COMMITTED_SNAPSHOT установлено значение OFF (по умолчанию), компонент Database Engine использует общие блокировки для предотвращения изменения строк другими транзакциями, когда текущая транзакция выполняет операцию чтения. Общие блокировки также блокируют оператор от чтения строк, измененных другими транзакциями, пока другая транзакция не будет завершена. Тип общей блокировки определяет, когда она будет снята. Блокировки строк снимаются до обработки следующей строки. Блокировки страниц снимаются при чтении следующей страницы, а блокировки таблиц снимаются после завершения оператора.
Если для READ_COMMITTED_SNAPSHOT задано значение ON, компонент Database Engine использует управление версиями строк для представления каждого оператора с согласованным с точки зрения транзакций моментальным снимком данных в том виде, в каком он существовал в начале оператора. Блокировки не используются для защиты данных от обновлений другими транзакциями.
Надеюсь, это поможет.
Радж