Applies ToSQL 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 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Sintomi

Quando si esegue un'istruzione Update complessa insieme a un suggerimento NOLOCK in una tabella in Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 o SQL Server 2014, potrebbe verificarsi un danneggiamento dell'indice non cluster. Inoltre, il messaggio di errore seguente può essere registrato nel log degli errori di SQL Server:

<data><ora> spid # Error: 8646, gravità: 21, stato: 1. <Data><ora> SPID # non è possibile trovare la voce di indice in ID indice 3, della tabella 2102402659, nel database ' <DatabaseName>'. L'indice indicato è danneggiato o si è verificato un problema con il piano di aggiornamento corrente. Eseguire DBCC CHECKDB o DBCC CHECKTABLE. Se il problema persiste, contattare il supporto tecnico. <data><ora> SPID # con "dbghelp. dll" versione "4.0.5" <Data><ora> SPID # * *-thread di dump-SPID = 0, EC = 0x0000000BD70624C0<Data><ora> SPID # * * * il dump dello stack viene inviato a Y:\MSSQL\MSSQL10. MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt><2 data><ora> SPID # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <Data><ora> SPID # * <Data><ora> SPID # * BEGIN stack DUMP: <Data><ora> SPID # * <Data><ora> SPID # <Data><ora> spid # * <Data><ora> SPID # * CPerIndexMetaQS:: ErrorAbort-indice di danneggiamento><0 Data><ora> SPID # *

Nota È possibile applicare un hint NOLOCK alle tabelle di origine in un'istruzione. Tuttavia, non è possibile applicare un suggerimento NOLOCK alle tabelle di destinazione in un'istruzione.

Causa

Questo problema si verifica perché l'hint NOLOCK fa in modo che la query non legga correttamente i valori nella tabella quando la query legge gli stessi valori più volte.

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.