FIX: Niet-geclusterde index beschadigd raken als u een complexe UPDATE-instructie met een geheugensteun NOLOCK op een tabel in SQL Server uitvoert

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 2878968 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Symptomen

Wanneer u een complexe UPDATE -instructie met een geheugensteun NOLOCK op een tabel in Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 of SQL Server-2014 uitvoert, kunnen niet-geclusterde index beschadigd raken. Bovendien kan het volgende foutbericht wordt vastgelegd in het foutenlogboek van SQL Server:

Datum>tijd> spid # fout: 8646, ernst: 21, staat: 1.
Datum>tijd> spid # kan geen vermelding vinden in de index-ID 3, van de tabel 2102402659, in de database 'DatabaseName>'. De aangegeven index is beschadigd of er is een probleem met het plan bijwerken. Voer DBCC CHECKDB of DBCC CHECKTABLE. Als het probleem zich blijft voordoen, neem dan contact op met productondersteuning.
Datum>tijd> spid # Using 'dbghelp.dll' versie '4.0.5'
Datum>tijd> spid # ** Dump thread - spid = 0, EG = 0x0000000BD70624C0
Datum>tijd> spid # *** Stack Dump wordt verzonden naar Y:\MSSQL\MSSQL10.MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt
Date>Time> spid # * *******************************************************************************
Datum>tijd> spid # *
Datum>tijd> spid # * STACK DUMP beginnen:
Datum>tijd> spid # * datum>tijd> spid #
Datum>tijd> spid # *
Datum>tijd> spid # * CPerIndexMetaQS::ErrorAbort - Index beschadigd
Datum>tijd> spid # *

Opmerking
kunt u een geheugensteun NOLOCK toepassen op de brontabellen in een instructie. U kunt een geheugensteun NOLOCK echter niet toepassen op de doeltabellen in een instructie.

Oorzaak

Dit probleem treedt op omdat de aanwijzing NOLOCK zorgt ervoor de query waarden in de tabel onjuist wordt gelezen dat wanneer de query dezelfde waarde meerdere keren wordt.

Oplossing

Het probleem is in eerste instantie opgelost in de volgende cumulatieve update van SQL Server.

Cumulatieve Update 1 voor SQL Server 2014

Cumulatieve Update 11 voor SQL Server 2012

Cumulatieve Update 7 voor SQL Server 2012 SP1

13 cumulatieve update voor SQL Server 2008 SP3

Cumulatieve Update 9 voor SQL Server 2008 R2 SP2

Over cumulatieve updates voor SQL Server

Deze afbeelding samenvouwenDeze afbeelding uitklappen
assets folding start collapsed
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingscorrecties die zijn opgenomen in de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server:
Deze afbeelding samenvouwenDeze afbeelding uitklappen
assets folding end collapsed

Status

Microsoft heeft bevestigd dat dit een probleem is in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.

Eigenschappen

Artikel ID: 2878968 - Laatste beoordeling: dinsdag 22 april 2014 - Wijziging: 5.0
De informatie in dit artikel is van toepassing op:
  • Microsoft SQL Server 2008 Service Pack 3 op de volgende platformen
    • 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
Trefwoorden: 
kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2878968 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door middel van automatische vertalingssoftware van Microsoft en is mogelijk nabewerkt door de Microsoft Community via CTF-technologie (Community Translation Framework) of door een menselijke vertaler. Microsoft biedt zowel automatisch vertaalde, door mensen vertaalde en door de community nabewerkte artikelen aan, zodat er in meerdere talen toegang is tot alle artikelen in onze Knowledge Base. Een vertaald of bewerkt artikel kan fouten bevatten in vocabulaire, syntaxis of grammatica.. Microsoft is niet verantwoordelijk voor eventuele onjuistheden, fouten of schade ten gevolge van een foute vertaling van de inhoud van een bericht of het gebruik van deze vertaalde berichten door onze klanten.
De Engelstalige versie van dit artikel is de volgende: 2878968

Geef ons feedback

 

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