Sql клиентские транзакции из кода против транзакций, управляемых базой данных - PullRequest
6 голосов
/ 09 августа 2010

Я всегда выполнял транзакции из хранимых процедур, но теперь мне нужно обернуть несколько «динамических» операторов, выполненных из кода, против sp_executesql в транзакции.

В частности, мне нужно READ UNCOMMITEDуровень изоляции для них в некоторых случаях (я знаю, что это делает, и да, это то, что мне нужно).Это SQL2008.

Мой вопрос такой: если я использую метод BeginTransaction() моего экземпляра SqlConnection с уровнем изоляции, установленным на IsolationLevel.ReadUncommitted, это будет иметь такой же эффект, как если бы я выполнил сохраненный процесс, которыйимеет оператор READ UNCOMMITED?

1 Ответ

3 голосов
/ 09 августа 2010

Да, будет.

SqlConnection использует собственный клиент SQL, и вызов BeginTransaction приводит к отправке именно этого на сервер:

SET TRANSACTION ISOLATION LEVEL <WHATEVER>; BEGIN TRANSACTION;
...