Будут ли сброшены параметры T-Sql SET при использовании пула соединений .NET? - PullRequest
4 голосов
/ 06 января 2009

Единственный параметр SET, для которого я нашел конкретное руководство, это SET TRANSACTION ISOLATION LEVEL:

Если вы выдадите SET TRANSACTION ISOLATION УРОВЕНЬ в хранимой процедуре или триггер, когда объект возвращается контролировать уровень изоляции сбрасывается до уровня, действующего, когда объект был вызван. Например, если вы установите ПОВТОРНО ПРОЧИТАЙТЕ в партии, а пакет затем вызывает хранимую процедуру который устанавливает уровень изоляции SERIALIZABLE, уровень изоляции установка возвращается к REPEATABLE READ когда хранимая процедура возвращается контроль до партии.

А как насчет других параметров SET, таких как SET XACT_ABORT или SET DEADLOCK_PRIORITY? Если вы установите их во время хранимой процедуры (или пакета, отправленного из C #), они вернутся к своим предыдущим значениям при следующем использовании соединения?

Ответы [ 2 ]

4 голосов
/ 06 января 2009

По умолчанию (то есть, если вы не включите «Connection Reset = false» в строку подключения) .NET сбрасывает подключение с помощью хранимой процедуры sp_reset_connection перед повторным ее использованием; среди прочего он отменяет любые команды SET, которые были выполнены с момента открытия соединения.

Подробнее см. в этой статье .

0 голосов
/ 06 января 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...