Ответ 1
Во-первых, уровень изоляции по умолчанию в SQL Server - Read Committed, поэтому этот оператор действительно ничего не делает, если вы не изменили уровень изоляции по умолчанию.
Но, в общем, да, уровень изоляции транзакции SET изменит уровень изоляции для всей процедуры (на самом деле длительность соединения)
Имейте в виду, что все операторы SQL являются неявными транзакциями, что означает, что если, например, обновление не прошло 99%, он автоматически откатится; нет BEGIN TRAN/COMMIT
.
Чтобы ответить на ваш вопрос, да, ваши операторы SELECT наследуют уровень изоляции, который вы установили (или по умолчанию, если вы его не задали), если вы не переопределите поведение с подсказкой запроса, например WITH NOLOCK
, которая сделает индивидуальный запрос как будто вы сделали SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED