Al momento sei offline in attesa che la connessione Internet venga ristabilita

FIX: Indice non cluster danneggiato può verificarsi quando si esegue un'istruzione UPDATE complessa con un hint NOLOCK nella tabella di SQL Server

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 2878968
Sintomi
Quando si esegue un'istruzione UPDATE complessa con un hint NOLOCK nella tabella di Microsoft SQL Server 2008, SQL Server 2012, SQL Server 2008 R2 o SQL Server 2014, può verificarsi il danneggiamento dell'indice non cluster. Inoltre, potrebbe essere registrato il seguente messaggio di errore nel log degli errori di SQL Server:

Data>tempo> spid # errore: 8646, gravità: 21, stato: 1.
Data>tempo> spid # Impossibile trovare la voce di indice nell'indice ID 3, della tabella 2102402659, nel database 'NomeDatabase>'. 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>tempo> Using 'dbghelp. dll' versione '4.0.5' per spid #
Data>tempo> spid # * * Dump thread - spid = 0, CE = 0x0000000BD70624C0
Data>tempo> spid # * * * Dump dello Stack inviato a Y:\MSSQL\MSSQL10.MSSQLSERVER\MSSQL\LOG\SQLDump0003.txt
Date>Time> spid # * *******************************************************************************
Data>tempo> spid # *
Data>tempo> spid # * inizio DUMP dello STACK:
Data>tempo> spid # * Data>tempo> spid #
Data>tempo> spid # *
Data>tempo> spid # * CPerIndexMetaQS::ErrorAbort - danneggiamento dell'indice
Data>tempo> spid # *

Nota
è possibile applicare un hint NOLOCK a tabelle di origine in un'istruzione. Tuttavia, è possibile applicare un hint NOLOCK a tabelle in un'istruzione di destinazione.

Cause
Questo problema si verifica perché l'hint NOLOCK consente alla query di leggere correttamente i valori nella tabella quando la query legge gli stessi valori più volte.
Risoluzione
Il problema è stato innanzitutto corretto nell'aggiornamento cumulativo seguente di SQL Server.

Aggiornamento cumulativo 1 per SQL Server 2014

Aggiornamento cumulativo 11 per SQL Server 2012

Aggiornamento cumulativo 7 per SQL Server 2012 SP1

Aggiornamento cumulativo 13 per SQL Server 2008 SP3

Aggiornamento cumulativo 9 per SQL Server 2008 R2 Service Pack 2

Informazioni sugli aggiornamenti cumulativi per SQL Server

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutte le correzioni di protezione che sono stati incluse nell'aggiornamento cumulativo precedente. Consente di estrarre gli ultimi aggiornamenti cumulativi per SQL Server:
Status
Microsoft ha confermato che questo è un problema nei prodotti Microsoft elencati nella sezione "Si applica a".

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 2878968 - Ultima revisione: 04/22/2014 20:19:00 - Revisione: 5.0

Microsoft SQL Server 2008 Service Pack 3, 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

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2878968 KbMtit
Feedback