IsolationLevel 列挙体
アセンブリ: System.Data (system.data.dll 内)

Public Enumeration IsolationLevel

メンバ名 | 説明 | |
---|---|---|
![]() | Chaos | これより分離性の高いトランザクションからの保留中の変更に対しては上書きできません。 |
![]() | ReadCommitted | データが読み込まれている間、ダーティ読み込みを防ぐために共有ロックが保持されますが、トランザクションが終了する前にデータを変更できます。このため、読み込みは繰り返されません。また実際には存在しないデータを生成できます。 |
![]() | ReadUncommitted | ダーティ読み込みができます。つまり、共有ロックが発行されておらず、排他ロックが有効ではありません。 |
![]() | RepeatableRead | クエリで使用されるすべてのデータにロックがかけられ、他のユーザーがデータを更新できないようになっています。繰り返し不能読み込みはできませんが、実際には存在しない行を生成できます。 |
![]() | Serializable | DataSet にレンジ ロックがかけられ、トランザクションが完了するまで、他のユーザーは行を更新したりデータセットに行を挿入できません。 |
![]() | Snapshot | あるアプリケーションで変更中のデータを他のアプリケーションから読み取ることができるように、そのデータのバージョンを保存して、ブロッキングを減らします。この場合、クエリを再実行しても、あるトランザクションで加えられた変更を、他のトランザクションで表示できません。 |
![]() | Unspecified | 指定した分離レベルとは異なる分離レベルが使用されていますが、レベルを確認できません。 OdbcTransaction を使用している場合に、IsolationLevel を設定しないか、または IsolationLevel を Unspecied に設定すると、基になる ODBC ドライバの既定の分離レベルに基づいて、トランザクションが実行されます。 |

IsolationLevel 値は、.NET Framework データ プロバイダがトランザクションを実行するときに使用します。
IsolationLevel 値は明示的に変更されるまで有効です。この値はいつでも変更できます。新しい値は解析時ではなく実行時に使用されます。トランザクション中に値が変更された場合は、サーバーは残りのすべてのステートメントに新しいロック レベルを適用する必要があります。

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


IsolationLevel 列挙体
アセンブリ: System.Transactions (system.transactions.dll 内)

Public Enumeration IsolationLevel

メンバ名 | 説明 | |
---|---|---|
Chaos | これより分離性の高いトランザクションからの保留中の変更に対しては上書きできません。 | |
ReadCommitted | 揮発性データをトランザクション中に読み取ることはできませんが、変更することはできます。 | |
ReadUncommitted | 揮発性データをトランザクション中に読み取ったり、変更したりできます。 | |
RepeatableRead | 揮発性データをトランザクション中に読み取ることはできますが、変更することはできません。トランザクション中に新しいデータを追加できます。 | |
Serializable | 揮発性データを読み取ることはできますが、変更することはできません。また、トランザクション中に新しいデータを追加することはできません。 | |
Snapshot | 揮発性データを読み取ることができます。トランザクションがデータを変更する前に、データを最初に読み取った後に別のトランザクションがそれを変更していないかどうかを検査します。データが更新されている場合は、エラーが発生します。これにより、トランザクションは、データの前回コミットされた値に到達できます。 この分離レベルを使用して作成されたトランザクションを上位変換しようとすると、InvalidOperationException がスローされ、"IsolationLevel スナップショットによるトランザクションは昇格することができません。" というエラー メッセージが表示されます。 | |
Unspecified | 指定した分離レベルとは異なる分離レベルが使用されていますが、レベルを確認できません。この値が設定されている場合は、例外がスローされます。 |

トランザクションの影響を受けるデータは揮発性と呼ばれます。トランザクションの作成時に、トランザクションに適用する分離レベルを指定できます。トランザクションの分離レベルにより、トランザクションの完了前に他のトランザクションが揮発性データへのアクセスに使用するレベルが決まります。
最も低い分離レベルである ReadUncommitted を使用すると、データ ストアで多くのトランザクションを同時に実行できますが、トランザクションの中断によるデータの破損に対する保護は提供されません。最も高い分離レベルである Serializable を使用すると、トランザクションの中断に対して高いレベルの保護が提供されますが、データに対してトランザクションを実行するには、各トランザクションが完了している必要があります。
トランザクションの分離レベルは、トランザクションの作成時に決定されます。既定では、System.Transactions インフラストラクチャは、Serializable トランザクションを作成します。トランザクションの IsolationLevel プロパティを使用して、既存のトランザクションの分離レベルを決定できます。

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- IsolationLevelのページへのリンク