私たちは、SQL 2005サーバーに接続し、それに多数の挿入/更新と選択を行うためにADO.NETを使用しています。更新の1つをトランザクション内に変更しましたが、トランザクションで設定したIsolationLevelに関係なく、(b)テーブル全体をロックするように見えます。SQLトランザクション(b)ロックの選択 - 私の理解は正しい
私が見ているように見える行動はということです:あなたは何のトランザクションを持っていない場合は、いくつかの取引を持っている場合は
- が、それはすべてのアウトの戦い(敗者死んでロックされた取得)
- が、その後、彼らはすべての勝利です他のすべてのものを除いてブロックしないでください。
- もしあなたがいくつかのトランザクションを持っていて、残りの部分にnolockのようなものを設定すれば、トランザクションと何もブロックされません。 トランザクション()に関係なく、すべてのステートメント(選択/挿入/削除/更新)に隔離レベルがあるためです。
これは正しいですか?