Acceso a metadatos, niveles de aislamiento y sugerencias de bloqueo

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 acerca de 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

Admitido

Respetado

READ UNCOMMITTED

No

Sin garantizar

READ COMMITTED

Sí

Sí

REPEATABLE READ

No

No

SNAPSHOT ISOLATION

No

No

SERIALIZABLE

No

No