2016-06-17 9 views
0

複数のSELECTステートメントを1つのウィンドウに書き、通常は必要に応じて強調表示して実行します。 SET TRANSACTION ISOLATION LEVELとハイライトステートメント

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 

SELECT * FROM Table1 

SELECT * FROM Table2 

SELECT * FROM Table3 

この

は、ここで私意志 のみハイライト SELECT * FROM Table2とそれを実行するから、今、私の窓がどのように見えるかの例です。

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;は、ステートメントで強調表示されていなくても適用されますか?

まだ適用されている場合、はどのようになりますかですか?あなたがREAD UNCOMMITTEDを使用すべきでない理由について通常の熱弁を無視

答えて

1

...

接続が切断されるか、別のレベルが設定されるまでTRANSACTION ISOLATION LEVELは、接続レベルで適用される設定。

BOLから:SETトランザクション分離レベル(のTransact-SQL) コントロールロック

とSQL Serverへの接続によって発行されたTransact-SQLステートメントの動作をバージョン行。

SSMSクエリウィンドウでこれを1回実行すると、その接続(ウィンドウ)内のサーバーに送信するすべてのバッチクエリに適用されます。

また、文に「WITH (NOLOCK)」を追加して個々の文に適用することもできます。

SELECT * FROM Table1; 
SELECT * FROM Table2 WITH (NOLOCK); 
SELECT * FROM Table3; 
1

いいえ、実行しなかった場合、接続には適用されません。前回の回答でChrisが述べたように、接続(SSMSのクエリウィンドウ)で実行すると、この接続の後続のクエリはすべてこのトランザクション分離レベルを使用して実行されます。

DBCC USEROPTIONS 
:あなたは疑問を持っている場合は

することは、あなたが今、あなたの接続に使用されたトランザクション分離レベルを確認することができます

関連する問題