Каковы правила определения уровней изоляции транзакций в SQL Server 2005? Я знаю, что означают разные уровни, но не знаю, как правильно применять их вне сценария, запускаемого вручную. Я не могу найти руководство для практического использования в коде качества производства.
Очевидно, что область начинается, когда вы используете такую команду:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
Но чем это заканчивается? Если я устанавливаю уровень iso в хранимой процедуре, а затем этот proc вызывает другую, наследует ли ее вложенный proc? Еще лучше, если я увеличу уровень iso во вложенном процессе, он вернется обратно в вызывающий процесс? Имеют ли какие-либо различия команды транзакций, такие как BEGIN TRAN, ROLLBACK и COMMIT?
Когда хранимый процесс вызывается приложением или заданием агента, сохраняются ли изменения уровня изоляции каким-либо образом? Всегда ли мне возвращаться к READ COMMITTED по умолчанию в конце каждого процесса?
Я бы протестировал его в разных ситуациях, но я не знаю, как прочитать, какой текущий уровень изоляции установлен.