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 |
Se admite |
Respetado |
---|---|---|
READ UNCOMMITTED |
No |
Sin garantizar |
READ COMMITTED |
Sí |
Sí |
REPEATABLE READ |
No |
No |
SNAPSHOT ISOLATION |
No |
No |
SERIALIZABLE |
No |
No |