MSSQLSERVER_3961
Détails
Nom de produit |
SQL Server |
Version du produit |
10.50 |
Numéro de build du produit |
10.00.1050.6 |
ID d'événement |
3961 |
Source de l'événement |
MSSQLSERVER |
Composant |
SQLEngine |
Nom symbolique |
XACT_METADATA_INVALID |
Texte du message |
La transaction d'isolement d'instantané 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 d'instantané. |
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 avec le niveau d'isolement d'instantané 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 d'instantané au sein des 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 de l'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.