Níveis de isolamento da transaçãoTransaction Isolation Levels

Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions)

O SQL ServerSQL Server não garante que as dicas de bloqueio serão cumpridas em consultas que acessam metadados por exibições do catálogo, exibições de compatibilidade, exibições de esquema de informações, funções internas que emitem metadados.SQL ServerSQL Server does not guarantee that lock hints will be honored in queries that access metadata through catalog views, compatibility views, information schema views, metadata-emitting built-in functions.

Internamente, o Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine cumpre apenas o nível de isolamento READ COMMITTED para acesso a metadados.Internally, the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine only honors the READ COMMITTED isolation level for metadata access. Se uma transação tiver um nível de isolamento que seja, por exemplo, SERIALIZABLE e, dentro da transação, for feita uma tentativa de acessar os metadados usando exibições do catálogo ou funções internas que emitem metadados, essas consultas serão executadas até serem concluídas como READ COMMITTED.If a transaction has an isolation level that is, for example, SERIALIZABLE and within the transaction, an attempt is made to access metadata by using catalog views or metadata-emitting built-in functions, those queries will run until they are completed as READ COMMITTED. Porém, no isolamento de instantâneo, o acesso aos metadados pode falhar por causa de operações de DDL simultâneas.However, under snapshot isolation, access to metadata might fail because of concurrent DDL operations. Isso porque os metadados não são controlados por versão.This is because metadata is not versioned. Portanto, pode haver falha ao acessar o seguinte no isolamento de instantâneo:Therefore, accessing the following under snapshot isolation might fail:

  • Exibições do catálogoCatalog views

  • Exibições de compatibilidadeCompatibility views

  • Exibições do esquema de informaçõesInformation Schema Views

  • Funções internas que emitem metadadosMetadata-emitting built-in functions

  • Grupo sp_help de procedimentos armazenadossp_help group of stored procedures

  • Procedimentos de catálogo do SQL ServerSQL Server Native ClientSQL ServerSQL Server Native Client catalog procedures

  • Exibições e funções de gerenciamento dinâmicoDynamic management views and functions

Para obter mais informações sobre os níveis de isolamento, confira SET TRANSACTION ISOLATION LEVEL (Transact-SQL).For more information about isolation levels, see SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

A tabela a seguir fornece um resumo do acesso aos metadados em vários níveis de isolamento.The following table provides a summary of metadata access under various isolation levels.

Nível de isolamentoIsolation level SuportadoSupported CumpridoHonored
READ UNCOMMITTEDREAD UNCOMMITTED NãoNo Não garantidoNot guaranteed
READ COMMITTEDREAD COMMITTED SimYes SimYes
REPEATABLE READREPEATABLE READ NãoNo NãoNo
SNAPSHOT ISOLATIONSNAPSHOT ISOLATION NãoNo NãoNo
SERIALIZABLESERIALIZABLE NãoNo NãoNo