Niveles de aislamiento de transacción
Se aplica a: SQL Server Azure SQL Instancia administrada
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 | Sí | Sí |
REPEATABLE READ | No | No |
SNAPSHOT ISOLATION | No | No |
SERIALIZABLE | No | No |