Ler não confirmado
- Se os dados estiverem sendo alterados em uma transação, a seleção desses dados (em outra transação ou sem uma transação) não aguardará até que a primeira transação seja concluída e retornará entradas de dados de transações não confirmadas.
- Se os dados estiverem sendo lidos em uma transação, as atualizações desses dados em outra transação não aguardarão até que a primeira transação seja concluída.
- Os bloqueios compartilhados não são usados. Idêntico à configuração t ele NOLOCK dica para todas as seleções em Read Committed.
- Os bloqueios exclusivos são ativados durante a execução da instrução e desativados no final do do transação .
Ler confirmado + read_committed_snapshot desativado
(alterar banco de dados xxx definir read_committed_snapshot off)
- Se os dados estiverem sendo alterados em uma transação, a seleção desses dados (em outra transação ou sem transação) aguardará até que a primeira transação seja concluída. Sele tratar com o NOCHECK dica retornará dados modificados, mas não confirmados.
- Se os dados estiverem sendo lidos em uma transação, as atualizações desses dados em outra transação não aguardarão até que a primeira transação seja concluída.
- Os bloqueios compartilhados estão sendo ativados durante a execução da instrução e desativados no final do estado execução .
- Os bloqueios exclusivos estão sendo habilitados durante a execução da instrução e desabilitados no final da transação .
Ler confirmado + read_committed_snapshot ativado
(alterar banco de dados xxx definir read_committed_snapshot ativado)
- Se os dados estiverem sendo alterados em uma transação, a seleção desses dados (em outra transação ou sem transação) não aguardará até que a primeira transação seja concluída e retornará valores no momento t de o início da transação . Selecione com o Dica NOCHECK retornará dados modificados, mas não confirmados.
- Se os dados estiverem sendo lidos em uma transação, as atualizações desses dados em outra transação não aguardarão até que a primeira transação seja concluída.
- Os bloqueios compartilhados não são usados. O mecanismo de controle de versão de linha é usado - os dados dos registros atualizados são armazenados em tempdb .
- Os bloqueios exclusivos estão sendo habilitados durante a execução da instrução e são desabilitados no final da transação .
Leitura repetível
- Se os dados estiverem sendo alterados em uma transação, a seleção desses dados (em outra transação ou sem uma transação) aguardará até que a primeira transação seja concluída. Selecione com o A dica NOLOCK retornará dados modificados, mas não confirmados.
- Se os dados estiverem sendo lidos em uma transação, as atualizações desses dados em outra transação aguardarão até que a primeira transação seja concluída.
- Os bloqueios compartilhados estão sendo ativados durante a execução da instrução e desativados no final da transação , ao contrário de Ler confirmado.
- Os bloqueios exclusivos estão sendo habilitados durante a execução da instrução e desabilitados no final da transação .
Serializável
- Se os dados estiverem sendo alterados em uma transação, a seleção desses dados (em outra transação ou sem transação) aguardará até que a primeira transação seja concluída. Selecione com o A dica NOLOCK irá retorna dados modificados, mas não confirmados.
- Se os dados estiverem sendo lidos em uma transação, as atualizações desses dados em outra transação aguardarão até que a primeira transação seja concluída.
- Os bloqueios compartilhados são ativados durante a execução da instrução e desativados no final da transação .
- Os bloqueios exclusivos estão sendo habilitados durante a execução da instrução e estão sendo desabilitados no final da transação.
- Os bloqueios de intervalo exclusivos estão sendo ativados para chaves que atendem ao intervalo de critérios de consulta. Não são permitidas inserções de novos registros dentro desse intervalo. Idêntico à configuração o ESPERA CK dica para todos os SELECTs em Leia Comprometido.
Instantâneo
(alterar banco de dados xxx definir allow_snapshot_isolation on)
- Se os dados estiverem sendo alterados em uma transação, a seleção desses dados (em outra transação ou sem uma transação) não aguardará até que a primeira transação seja concluída. e retornará valores no momento de o início da transação . Selecione com o A dica NOLOCK irá retorna dados modificados, mas não confirmados.
- Se os dados estiverem sendo lidos em uma transação, as atualizações desses dados em outra transação não aguardarão até que a primeira transação seja concluída.
- Os bloqueios compartilhados não são usados. O mecanismo de controle de versão de linha é usado - os dados dos registros atualizados são armazenados em tempdb .
- Os bloqueios exclusivos estão sendo habilitados durante a execução da instrução e desabilitados no final da transação.
Testado em MSSQL 2014.