Sintomi
Considerare lo scenario descritto di seguito:
-
È possibile abilitare il rilevamento delle modifiche in un database in Microsoft SQL Server 2012.
-
Si esegue una query che usa la funzione di rilevamento delle modifiche di sistema CHANGE_TRACKING_CURRENT_VERSION ().
-
SQL Server tenta di usare un piano di esecuzione di query parallela per eseguire la query.
In questo scenario si verifica una violazione di accesso e potrebbe essere visualizzato il messaggio di errore seguente:
Msg 0, livello 11, stato 0, errore di linea 0A grave si è verificato il comando corrente. I risultati, se presenti, devono essere eliminati.
Causa
Il problema si verifica perché la funzione CHANGE_TRACKING_CURRENT_VERSION () non può essere eseguita correttamente in parallelo.
Risoluzione
Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server.
Aggiornamento cumulativo 6 per SQL Server 2012 SP1 /en-us/help/2874879
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".
Soluzione alternativa
Per risolvere il problema, usare l'hint Option (MAXDOP 1) nella query.