MSDNオンライン記事「SQL Serverのスナップショット分離」には、次のように記載されています。
- 「分離レベルには接続全体のスコープがあり、SET TRANSACTION ISOLATION LEVELステートメントを使用して接続に設定されると、接続が閉じられるか、別の分離レベルが設定されるまで有効です。接続が閉じられ、プールに戻されるとき、最後のSET TRANSACTION ISOLATION LEVELステートメントからの分離レベルが保持されます。プールされた接続を再利用する後続の接続では、接続がプールされたときに有効だった分離レベルが使用されます。
自己矛盾する段落ではありませんか(「まで」と「保持」)。
次に、接続を閉じてプールに戻した後、「最後のSET TRANSACTION ISOLATION LEVELステートメントからの分離レベルが保持されている」場合、それをどのように理解する必要がありますか。
- デフォルトの分離レベルは任意の値になります(プール内の異なる接続には異なる分離レベルがあり、その値は再オープンされる接続に依存します)?
- または、プール内のすべての接続のすべてのデフォルト値が最後の値に変更されますか?しかし、手に入る前にまた全く未知ですか?