SQL Server 2005のトランザクション分離レベルのスコープルールは何ですか?さまざまなレベルの意味はわかっていますが、手動で実行するスクリプトの外部でそれらを適切に適用する方法はわかりません。本番品質のコードで実用的なガイドが見つかりません。
明らかに、スコープは次のようなコマンドを使用すると始まります。
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
しかし、それはどこで終わりますか?ストアドプロシージャでisoレベルを設定し、そのprocが別のプロシージャを呼び出す場合、ネストされたprocはそれを継承しますか?さらに良いことに、ネストされたproc内のisoレベルをエスカレートすると、呼び出し元のprocに戻されますか?BEGIN TRAN、ROLLBACK、COMMITなどのトランザクションコマンドは何か違いがありますか?
ストアドプロシージャがアプリケーションまたはエージェントジョブによって呼び出された場合、分離レベルの変更は何らかの方法で持続しますか?各プロシージャの最後に、常にデフォルトのREAD COMMITTEDに戻す必要がありますか?
さまざまな状況でテストしますが、現在の分離レベルが何に設定されているかを読み取る方法がわかりません。