IsolationLevel IsolationLevel IsolationLevel IsolationLevel Enum

定義

トランザクションの分離レベルを指定します。Specifies the isolation level of a transaction.

public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel = 
Public Enum IsolationLevel
継承
IsolationLevelIsolationLevelIsolationLevelIsolationLevel

フィールド

Chaos Chaos Chaos Chaos 5

これより分離性の高いトランザクションからの保留中の変更に対しては上書きできません。The pending changes from more highly isolated transactions cannot be overwritten.

ReadCommitted ReadCommitted ReadCommitted ReadCommitted 2

揮発性データをトランザクション中に読み取ることはできませんが、変更することはできます。Volatile data cannot be read during the transaction, but can be modified.

ReadUncommitted ReadUncommitted ReadUncommitted ReadUncommitted 3

揮発性データをトランザクション中に読み取ったり、変更したりできます。Volatile data can be read and modified during the transaction.

RepeatableRead RepeatableRead RepeatableRead RepeatableRead 1

揮発性データをトランザクション中に読み取ることはできますが、変更することはできません。Volatile data can be read but not modified during the transaction. トランザクション中に新しいデータを追加できます。New data can be added during the transaction.

Serializable Serializable Serializable Serializable 0

揮発性データを読み取ることはできますが、変更することはできません。また、トランザクション中に新しいデータを追加することはできません。Volatile data can be read but not modified, and no new data can be added during the transaction.

Snapshot Snapshot Snapshot Snapshot 4

揮発性データを読み取ることができます。Volatile data can be read. トランザクションがデータを変更する前に、データを最初に読み取った後に別のトランザクションがそれを変更していないかどうかを検査します。Before a transaction modifies data, it verifies if another transaction has changed the data after it was initially read. データが更新されている場合は、エラーが発生します。If the data has been updated, an error is raised. これにより、トランザクションは、データの前回コミットされた値に到達できます。This allows a transaction to get to the previously committed value of the data.

Snapshot 分離レベルを使用して作成したトランザクションを昇格させようとすると、エラー メッセージ「IsolationLevel スナップショットのあるトランザクションは上位変換できません」と共に InvalidOperationException がスローされます。When you try to promote a transaction that was created with the Snapshot isolation level, an InvalidOperationException is thrown with the error message "Transactions with IsolationLevel Snapshot cannot be promoted".

Unspecified Unspecified Unspecified Unspecified 6

指定した分離レベルとは異なる分離レベルが使用されていますが、レベルを確認できません。A different isolation level than the one specified is being used, but the level cannot be determined. この値が設定されている場合は、例外がスローされます。An exception is thrown if this value is set.

注釈

トランザクションの影響を受けるデータは、volatile と呼ばれます。The data affected by a transaction is called volatile. トランザクションの作成時に、トランザクションに適用する分離レベルを指定できます。When you create a transaction, you can specify the isolation level that applies to the transaction. トランザクションの分離レベルによって、トランザクションが完了する前に、他のトランザクションが揮発性データに対して持つアクセスレベルが決まります。The isolation level of a transaction determines what level of access other transactions have to volatile data before a transaction completes.

最も低い分離レベルでReadUncommittedは、データストアに対して多くのトランザクションを同時に実行でき、伴わトランザクションによるデータ破損に対する保護は提供されません。The lowest isolation level, ReadUncommitted, allows many transactions to operate on a data store simultaneously and provides no protection against data corruption due to interruptive transactions. 最大の分離レベルでSerializableは、伴わトランザクションに対する高度な保護が提供されますが、他のトランザクションがデータに対して操作できるようになるには、各トランザクションが完了する必要があります。The highest isolation level, Serializable, provides a high degree of protection against interruptive transactions, but requires that each transaction complete before any other transactions are allowed to operate on the data.

トランザクションの分離レベルは、トランザクションが作成されるときに決定されます。The isolation level of a transaction is determined when the transaction is created. 既定では、 System.TransactionsインフラストラクチャにSerializableよってトランザクションが作成されます。By default, the System.Transactions infrastructure creates Serializable transactions. トランザクションのTransaction.IsolationLevelプロパティを使用して、既存のトランザクションの分離レベルを特定できます。You can determine the isolation level of an existing transaction by using the Transaction.IsolationLevel property of a transaction.

適用対象