Области уровня изоляции транзакции

Каковы правила определения уровней изоляции транзакций в SQL Server 2005? Я знаю, что означают разные уровни, но не знаю, как правильно применять их вне сценария, запускаемого вручную. Я не могу найти руководство для практического использования в коде качества производства.

Очевидно, область действия начинается, когда вы используете такую команду:

<code>SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
</code>

Но где это заканчивается? Если я устанавливаю уровень iso в хранимой процедуре, а затем этот proc вызывает другую, наследует ли ее вложенный proc? Еще лучше, если я увеличу уровень iso во вложенном процессе, он вернется обратно в вызывающий процесс? Имеют ли какие-либо отличия команды транзакций, такие как BEGIN TRAN, ROLLBACK и COMMIT?

Когда сохраненный процесс вызывается приложением или заданием агента, сохраняются ли изменения уровня изоляции каким-либо образом? Всегда ли мне возвращаться к READ COMMITTED по умолчанию в конце каждого процесса?

Я бы протестировал его в разных ситуациях, но я не знаю, как прочитать, какой текущий уровень изоляции установлен.

Ответы на вопрос(6)

Ваш ответ на вопрос