CORRECTIF : Une altération d'index non ordonnés en clusters peut-être se produire lorsque vous exécutez une instruction UPDATE complexe avec un indicateur NOLOCK sur une table dans SQL Server

Traductions disponibles Traductions disponibles
Numéro d'article: 2878968 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Lorsque vous exécutez une instruction UPDATE complexe avec un indicateur NOLOCK sur une table dans Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 ou SQL Server 2014, une altération d'index non ordonnés en clusters peut-être se produire. En outre, le message d'erreur suivant peut être enregistré dans le journal des erreurs SQL Server :

Date>temps> spid # erreur : 8646, gravité : 21, état: 1.
Date>temps> spid # Impossible de trouver l'entrée d'index dans l'index ID 3, de la table 2102402659, base de données 'DatabaseName>'. L'index spécifié est endommagé ou il y a un problème avec le plan de mise à jour en cours. Exécutez DBCC CHECKDB ou DBCC CHECKTABLE. Si le problème persiste, contactez le support technique.
Date>temps> utilisation 'de dbghelp.dll' version '4.0.5' spid #
Date>temps> spid # ** thread de vidage - spid = 0, EC = 0x0000000BD70624C0
Date>temps> spid # *** vidage de pile envoyé vers Y:\MSSQL\MSSQL10.MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt
Date>Time> spid # * *******************************************************************************
Date>temps> spid # *
Date>temps> spid # * commencer le vidage de pile :
Date>temps> spid # * Date>temps> spid #
Date>temps> spid # *
Date>temps> spid # * CPerIndexMetaQS::ErrorAbort - une altération d'Index
Date>temps> spid # *

Remarque
vous pouvez appliquer un indicateur NOLOCK aux tables source dans une instruction. Toutefois, vous ne peut pas appliquer un indicateur NOLOCK pour les tables cibles dans une instruction.

Cause

Ce problème se produit car l'indicateur NOLOCK provoque la lecture incorrecte des valeurs dans la table lorsque la requête lit les plusieurs fois les mêmes valeurs de la requête.

Résolution

Le problème a été tout d'abord résolu dans la mise à jour cumulative suivante de SQL Server.

Mise à jour cumulative 1 pour SQL Server 2014

Mise à jour cumulative 11 de SQL Server 2012

Mise à jour cumulative 7 pour SQL Server 2012 SP1

Mise à jour cumulative 13 pour SQL Server 2008 SP3

Mise à jour cumulative 9 pour SQL Server 2008 R2 SP2

À propos des mises à jour cumulatives pour SQL Server

Réduire cette imageAgrandir cette image
assets folding start collapsed
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et des correctifs de sécurité qui ont été inclus dans la précédente mise à jour cumulative. Découvrez les dernières mises à jour cumulatives pour SQL Server :
Réduire cette imageAgrandir cette image
assets folding end collapsed

Statut

Microsoft a confirmé qu'il s'agit d'un problème pour les produits Microsoft répertoriés dans la section « S'applique à ».

Propriétés

Numéro d'article: 2878968 - Dernière mise à jour: mardi 22 avril 2014 - Version: 5.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2008 Service Pack 3 sur le système suivant
    • Microsoft SQL Server 2008 Enterprise
    • Microsoft SQL Server 2008 Developer
    • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Standard
Mots-clés : 
kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2878968 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d?une traduction incorrecte du contenu ou de son utilisation par les clients.
La version anglaise de cet article est la suivante: 2878968
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com