Niveles de aislamiento de transacción

Se aplica a:SQL ServerAzure SQL Managed Instance

SQL Server no garantiza que se respeten las sugerencias de bloqueo en consultas que tengan acceso a metadatos por medio de vistas de catálogo, vistas de compatibilidad, vistas del esquema de información y funciones integradas de emisión de metadatos.

Internamente, Motor de base de datos de SQL Server solo respeta el nivel de aislamiento READ COMMITTED para el acceso a metadatos. Si una transacción tiene un nivel de aislamiento que es, por ejemplo, SERIALIZABLE, y en la transacción se intenta obtener acceso a metadatos mediante vistas de catálogo o funciones integradas de emisión de metadatos, dichas consultas se ejecutan hasta que finalizan como READ COMMITTED. Sin embargo, en el aislamiento de instantánea, puede que el acceso a metadatos genere un error debido a operaciones DDL simultáneas. Esto se debe a que los metadatos no admiten versiones. Por tanto, puede que en el aislamiento de instantánea se genere un error al obtener acceso a:

  • Vistas de catálogo

  • Vistas de compatibilidad

  • Vistas de esquema de información

  • Funciones integradas de emisión de metadatos

  • Grupo de procedimientos almacenados sp_help

  • Procedimientos de catálogo de SQL Server Native Client

  • Funciones y vistas de administración dinámica

Para obtener más información sobre los niveles de aislamiento, vea SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

En la siguiente tabla se proporciona un resumen de acceso a metadatos en distintos niveles de aislamiento.

Nivel de aislamiento Compatible Respetado
READ UNCOMMITTED No Sin garantizar
READ COMMITTED
REPEATABLE READ No No
SNAPSHOT ISOLATION No No
SERIALIZABLE No No