Symptômes
Lorsque vous exécutez une instruction Update complexe avec une option d’optimisation de verrou par rapport à une table dans Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 ou SQL Server 2014, il est possible qu’un index non clusterisé soit endommagé. Par ailleurs, le message d’erreur suivant est susceptible d’être consigné dans le journal des erreurs SQL Server :
<date><durée> ID de spid # erreur : 8646, gravité : 21, état : 1. <Date><temps> SPID # impossible de trouver l’entrée d’index dans l’ID 3 du tableau 2102402659, dans la base de données' <DatabaseName> '. L’index indiqué est endommagé ou il y a un problème avec le plan de mise à jour actuel. Exécutez DBCC CHECKDB ou DBCC CHECKTABLE. Si le problème persiste, contactez le support produit. <date><temps> SPID # utilisation de la version’dbghelp. dll’du><de <de Date> d' erreur SPID # * * dump thread-SPID = 0, EC = 0x0000000BD70624C0<><Date> SPID # * * * vidage de pile en cours d’envoi à Y:\MSSQL\MSSQL10. MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt><2 Date><Time> SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <Date><time> SPID # * <Date><temps> SPID # * commencer le vidage de pile : <date><temps> spid Time # * <le SPID # *><><>< SPID Time # ><SPID # ><> SPID # * CPerIndexMetaQS : ErrorAbort-indice de corruption><0 Date><temps> Time SPID # * Date
RemarqueVous pouvez appliquer une indication de fonctionnalité de blocage aux tables sources dans une instruction. Toutefois, vous ne pouvez pas appliquer une option d’optimisation des options de verrouillage aux tables cibles dans une instruction.
Cause
Ce problème survient en raison du fait que la requête noverrouille entraîne la lecture incorrecte de valeurs dans la table lorsque la requête lit les mêmes valeurs plusieurs fois.
Résolution
Le problème a été résolu dans la mise à jour cumulative suivante de SQL Server.
Mise à jour cumulative 1 pour SQL Server 2014 /en-us/help/2931693
Mise à jour cumulative 11 pour SQL Server 2012 /en-us/help/2908007
Mise à jour cumulative 7 pour SQL Server 2012 SP1 /en-us/help/2894115
Mise à jour cumulative 13 pour SQL Server 2008 SP3 /en-us/help/2880350
Mise à jour cumulative 9 pour SQL Server 2008 R2 SP2 /en-us/help/2887606
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :
Statut
Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».