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.