official example hereには、明示的に定義されたトランザクションと共にSET TRANSACTION ISOLATION LEVEL
が使用されています。SET TRANSACTION ISOLATION LEVELはトランザクションでのみ機能しますか?
私の質問は、私はのように、SqlCommandオブジェクトからクエリを実行すると、次のとおりです。
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT * from MyTable
私が設定した新しい分離レベルの恩恵を受けるだろうか?
または、このようなトランザクションを明示的に定義する必要はありますか?
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
BEGIN TRANSACTION;
SELECT * from MyTable
COMMIT TRANSACTION;
UPDATE: Randy Levy's answerを1として、次のように、私は私のクエリを更新します。
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SELECT * from MyTable;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
これはpossible isolation level leaks when using poolingを克服することです。
あなたはトランザクションを必要はありません。私が間違っていない限り、 'READ UNCOMMITTED'は' NOLOCK'ヒントを使用しているかのように_any_ select文を動作させます。 – ZLK