Partager via


MSSQLSERVER_3961

Détails

Nom du produit

SQL Server

Version du produit

10.0

Numéro de version

10.00.1050.6

ID de l'événement

3961

Source de l'événement

MSSQLSERVER

Composant

SQLEngine

Nom symbolique

XACT_METADATA_INVALID

Texte du message

La transaction d'isolement de capture instantanée a échoué dans la base de données '%.*ls' car l'objet auquel l'instruction a eu accès a été modifié par une instruction DDL dans une autre transaction simultanée depuis le début de cette transaction. Cela est interdit, car les métadonnées n'ont pas de version. Une mise à jour simultanée des métadonnées peut provoquer des incohérences si elle est mélangée à un isolement de capture instantanée.

Explication

Cette erreur peut se produire si vous interrogez les métadonnées en isolement de capture instantanée et s'il existe une instruction DDL simultanée qui met à jour les métadonnées accessibles en isolement de capture instantanée. SQL Server ne prend pas en charge le versioning de métadonnées. Pour cette raison, il existe des restrictions sur les opérations DDL pouvant être effectuées dans une transaction explicite exécutée en isolement de capture instantanée. Par définition, une transaction implicite est une instruction unique qui permet d'appliquer la sémantique de l'isolement de capture instantanée, même avec des instructions DDL. Les instructions DDL suivantes ne sont pas autorisées en isolement de capture instantanée après une instruction BEGIN TRANSACTION : ALTER TABLE, CREATE INDEX, CREATE XML INDEX, ALTER INDEX, DROP INDEX, DBCC REINDEX, ALTER PARTITION FUNCTION, ALTER PARTITION SCHEME ou toute autre instruction DDL utilisant le langage CLR (Common Language Runtime). Ces instructions sont autorisées lorsque vous avez recours à l'isolement de capture instantanée au sein de transactions implicites. Par définition, une transaction implicite est une instruction unique qui permet d'appliquer la sémantique de l'isolement de capture instantanée, même avec des instructions DDL.

Action utilisateur

Modifiez le niveau d'isolement de capture instantanée en le remplaçant par un niveau d'isolement qui n'est pas de capture instantanée, tel que la lecture validée, avant l'interrogation des métadonnées.