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
| Nome | Valor | Description |
|---|---|---|
| Serializable | 0 | Dados voláteis podem ser lidos, mas não modificados, e nenhum novo dado pode ser adicionado 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 | 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. |
| Snapshot | 4 | Dados voláteis podem ser lidos. Antes que uma transação modifique os dados, ela verifica se outra transação alterou os dados após a leitura inicialmente. Se os dados tiverem sido atualizados, um erro será gerado. Isso permite que uma transação obtenha o valor confirmado anteriormente dos dados. Quando você tenta promover uma transação que foi criada com o |
| Chaos | 5 | As alterações pendentes de transações mais altamente isoladas não podem ser substituídas. |
| Unspecified | 6 | Um nível de isolamento diferente do especificado está sendo usado, mas o nível não pode ser determinado. Uma exceção será gerada se esse valor for definido. |
Comentários
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 nível de acesso outras transações têm para volátil dados antes de uma transação ser concluída.
O nível ReadUncommittedde 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 interruptivas. O nível Serializablede isolamento mais alto fornece um alto grau de proteção contra transações interruptivas, mas exige que cada transação seja concluída antes que qualquer outra transação tenha permissão para 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.