IsolationLevel Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
Chaos | 5 | As alterações pendentes de transações com maior isolamento não podem ser substituídas. |
ReadCommitted | 2 | Dados voláteis não podem ser lidos durante a transação, mas podem ser modificados. |
ReadUncommitted | 3 | Dados voláteis podem ser lidos e modificados 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. |
Serializable | 0 | Dados voláteis podem ser lidos, mas não modificados, e não é possível adicionar dados novos durante a transação. |
Snapshot | 4 | Dados voláteis podem ser lidos. Antes de uma transação modificar dados, ela verifica se outra transação alterou os dados depois de ter sido lida inicialmente. Se os dados tiverem sido atualizados, um erro será gerado. Isso permite que uma transação obtenha os valores dos dados confirmados anteriormente. Quando você tentar promover uma transação que foi criada com o nível de isolamento |
Unspecified | 6 | Um nível de isolamento diferente daquele especificado está sendo usado, mas não é possível determinar o nível. Uma exceção será lançada se esse valor for definido. |
Comentários
Os dados afetados por uma transação são chamados de voláteis. Quando você cria 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 nível de acesso outras transações têm para volátil dados antes da conclusão de uma transação.
O nível ReadUncommitted
de isolamento mais baixo permite que muitas transações operem em um armazenamento de dados simultaneamente e não fornece proteção contra corrupção de dados devido a transações de interrupção. O nível Serializable
de isolamento mais alto fornece um alto grau de proteção contra transações interrompetivas, mas exige que cada transação seja concluída antes que qualquer outra transação possa operar nos dados.
O nível de isolamento de uma transação é determinado quando a transação é criada. Por padrão, a System.Transactions infraestrutura cria Serializable
transações. Você pode determinar o nível de isolamento de uma transação existente usando a Transaction.IsolationLevel propriedade de uma transação.