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, SQL Server Database Engine (Motor de base de datos de SQL Server) sólo 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 del aislamiento de instantánea, vea Niveles de aislamiento del motor de base de datos.

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