IsolationLevel Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica o nível de isolamento de uma transação.
public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel =
Public Enum IsolationLevel
- Herança
Campos
| Name | Valor | Description |
|---|---|---|
| Serializable | 0 | Dados voláteis podem ser lidos, mas não modificados, e não podem ser adicionados novos dados durante a transação. |
| RepeatableRead | 1 | Dados voláteis podem ser lidos, mas não modificados durante a transação. Novos dados podem ser adicionados durante a transação. |
| ReadCommitted | 2 | Os dados voláteis não podem ser lidos durante a transação, mas podem ser modificados. |
| ReadUncommitted | 3 | Os dados voláteis podem ser lidos e modificados durante a transação. |
| Snapshot | 4 | Dados voláteis podem ser lidos. Antes de uma transação modificar os dados, verifica se outra transação alterou os dados após terem sido inicialmente lidos. Se os dados foram atualizados, surge um erro. Isto permite que uma transação chegue ao valor previamente comprometido dos dados. Quando tenta promover uma transação criada com o |
| Chaos | 5 | As alterações pendentes provenientes de transações mais isoladas não podem ser sobrescritas. |
| Unspecified | 6 | Está a ser utilizado um nível de isolamento diferente do especificado, mas o nível não pode ser determinado. É lançada uma exceção se este valor for definido. |
Observações
Os dados afetados por uma transação são chamados voláteis. Ao criar uma transação, você pode especificar o nível de isolamento que se aplica à transação. O nível de isolamento de uma transação determina qual o nível de acesso que outras transações têm a dados voláteis antes de a transação ser concluída.
O nível de isolamento mais baixo, ReadUncommitted, permite que muitas transações operem simultaneamente num armazenamento de dados e não oferece proteção contra corrupção de dados devido a transações interrompidas. O nível de isolamento mais elevado, Serializable, oferece um elevado grau de proteção contra transações interrompidas, mas exige que cada transação seja concluída antes que quaisquer outras transações possam operar nos dados.
O nível de isolamento de uma transação é determinado quando esta é criada. Por defeito, a System.Transactions infraestrutura cria Serializable transações. Pode determinar o nível de isolamento de uma transação existente usando a Transaction.IsolationLevel propriedade de uma transação.