MSSQLSERVER_3961
Detalles
Nombre del producto |
SQL Server |
Versión del producto |
10.50 |
Número de compilación del producto |
10.00.1050.6 |
Identificador de evento |
3961 |
Origen del evento |
MSSQLSERVER |
Componente |
SQLEngine |
Nombre simbólico |
XACT_METADATA_INVALID |
Texto del mensaje |
Error de la transacción de aislamiento de instantánea en la base de datos '%. * ls' porque el objeto al que tuvo acceso la instrucción ha sido modificado por una instrucción DDL de otra transacción simultánea desde el inicio de esta transacción. No se permite porque los metadatos no tienen control de versiones. Una actualización simultánea de los metadatos puede dar lugar a incoherencias si se combina con aislamiento de instantánea. |
Explicación
Este error se produce al consultar metadatos bajo aislamiento de instantánea y existe una instrucción DDL simultánea que actualiza los metadatos a los que se obtiene acceso bajo el aislamiento de instantáneas. SQL Server no admite el control versiones de metadatos. Por ello, existen restricciones en cuanto a las operaciones de DDL que se pueden realizar en una transacción explícita que se está ejecutando bajo el aislamiento de instantánea. Una transacción implícita, por definición, es una instrucción única que permite aplicar la semántica del aislamiento de instantánea, incluso con instrucciones de DDL. Las instrucciones de DDL siguientes no se admiten bajo el aislamiento de instantánea después de una instrucción BEGIN TRANSACTION: ALTER TABLE, CREATE INDEX, CREATE XML INDEX, ALTER INDEX, DROP INDEX, DBCC REINDEX, ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME, ni ninguna instrucción de DDL de Common Language Runtime (CLR). Estas instrucciones se admiten si se está utilizando el aislamiento de instantánea dentro de transacciones implícitas. Una transacción implícita, por definición, es una instrucción única que permite aplicar la semántica del aislamiento de instantánea, incluso con instrucciones de DDL.
Acción del usuario
Antes de consultar los metadatos, cambie el nivel de aislamiento a un nivel que no sea de aislamiento como, por ejemplo, lectura confirmada.