Gjelder for
SQL Server 2008 Service Pack 3 SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Standard SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Feil #: 190577 (Innholdsvedlikehold) VSTS: 1445038

Symptomer

Når du kjører en kompleks UPDATE -setning sammen med et tips om NOLOCK mot en tabell i Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 eller SQL Server-2014, kan ikke-grupperte indeksen ødelegges. I tillegg logges følgende feilmelding i SQL Server-feilloggen:

<Dato><tid> spid # feil: 8646, alvorlighetsgrad: 21, tilstand: 1.<Dato><tid> spid # kan ikke finne indeksoppføring i indeks-ID 3 i tabellen 2102402659, i databasen ' <databasenavnfor >'. Den angitte indeksen er skadet, eller det er et problem med den gjeldende planen for oppdateringen. Kjøre DBCC CHECKDB eller DBCC CHECKTABLE. Hvis problemet vedvarer, kontakter du kundestøtte.<Dato><tid> spid # ved hjelp av 'dbghelp.dll' versjon '4.0.5'<Dato><tid> spid # ** Dump tråd - spid = 0, EC = 0x0000000BD70624C0<Dato><tid> spid # *** stakk Dump sendes til Y:\MSSQL\MSSQL10. MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt<Date><Time> spid # * *******************************************************************************<Dato><tid> spid # *<Dato><tid> spid # * BEGYNNE BUNKE DUMP:<Dato><tid> spid # * <dato><tid> spid #<Dato><tid> spid # *<Dato><tid> spid # * CPerIndexMetaQS::ErrorAbort - indeksen kan føre til minnefeil<Dato><tid> spid # *

Merk du kan bruke et NOLOCK tips på kildetabellene i en setning. Du kan imidlertid bruke NOLOCK tips til mål-tabeller i en setning.

Årsak

Dette problemet oppstår fordi NOLOCK tipset gjør at spørringen skal lese feil verdier i tabellen når spørringen leser de samme verdiene flere ganger.

Oppløsning

Problemet ble først løst i den følgende kumulative oppdateringen av SQL Server.

Samleoppdatering 1 for SQLServer-2014/en-us/help/2931693

Kumulativ oppdatering 11 for SQLServer 2012/en-us/help/2908007

Samleoppdatering 7 for SQL Server 2012 SP1/en-us/help/2894115

Kumulativ oppdatering 13 for SQL Server 2008 SP3/en-us/help/2880350

Kumulativ oppdatering 9 for SQL Server 2008 R2 SP2/en-us/help/2887606

Hver nye kumulative oppdateringen for SQL Server inneholder alle hurtigreparasjonene og alle sikkerhetsreparasjoner som fulgte med den forrige kumulative oppdateringen. Sjekk ut de nyeste kumulative oppdateringene for SQL Server:

Status

Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".

Author: jackli ; jannawWriter: v-shysunTeknisk redaktør: jackli; jayc; makohli; sqlprev; jannawEditor: v-jonwoo

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.