Symptômes
Supposez que vous avez une base de données FILESTREAM activée dans une instance de Microsoft SQL Server. Lorsque vous démarrez une transaction et que vous utilisez l’API .NET SqlFileStream pour ouvrir un fichier FileStream, la tâche risque d’échouer et de lever une exception en raison de facteurs externes.
Si vous rouvrez le fichier à l’aide de SqlFileStream au sein de la même transaction et que vous validez, vous pouvez recevoir des messages d’erreur internes similaires à ce qui suit :
Dateet heure, SPID, inconnu, erreur : 5571<c/> gravité : 23<c/> État : 3.date, heure, SPID, inconnu, erreur FileStream interne : échec de l’accès à la table de nettoyage de la mémoire.
Si vous exécutez DBCC CHECKTABLE (« sys.filestream_tombstone_2073058421 »), vous pouvez recevoir le message d’erreur suivant :
MSG 8951, niveau 16, état 1, ligne LineNumber
Erreur de table : table DBCC CHECKTABLE (« sys.filestream_tombstone_2073058421 ») (ID IDnumber). La ligne de données n’a pas de ligne d’index correspondante dans l’index « FSTSNCIdx» (ID IDnumber). Clés manquantes ou non valides pour le jumelage de lignes d’index :
Résolution
Le correctif pour résoudre ce problème est inclus dans les mises à jour suivantes de SQL Server :
Mise à jour cumulative 13 pour SQL Server 2017
Mise à jour cumulative 1 pour SQL Server 2014 Service Pack 3
Mise à jour cumulative 15 pour SQL Server 2014 Service Pack 2
À propos des versions SQL Server
Chaque nouvelle build pour SQL Server contient tous les correctifs et correctifs de sécurité présents dans la build précédente. Nous vous recommandons d’installer la dernière version pour votre version de SQL Server :
Solution de contournement
Pour contourner ce problème, recréez l’index de la base de données à l’aide de la commande DBCC CHECKTABLE .
Statut
Microsoft a confirmé l’existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.
Références
Découvrez la terminologie standard utilisée par Microsoft pour décrire les mises à jour logicielles.