Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Sintomi

Supponiamo di avere una tabella che contiene un indice columnstore raggruppato in Microsoft SQL Server 2014. Si esegue una query DDL sulla tabella per modificare il tipo di dati di una colonna esistente. Ad esempio, è possibile aggiornare il tipo di dati per Column_1 di Table_1 da VARCHAR (499) a NVARCHAR (500) eseguendo il comando seguente:

ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL

In questa situazione si verificano più errori di asserzione e viene visualizzato il messaggio di errore seguente:

Posizione: <percorso File> \Xmcolenc.inl: 413Expression: PF_CURRENT_STATUS = = PFS_OK (in XMColumnEncoder<carattere non firmato *>:: EncodeValueForSecondary) SPID : <SPID>ID processo : < ID processo> Descrizione: HR: 0x0Location: <percorso file> \Xmerror.cpp: 43EXPRESSION: 0 (in PFSetLastError) SPID: <SPID>ID processo

Inoltre, vengono generati più file di dump della memoria nella cartella del log degli errori di SQL Server e nel log degli errori di SQL Server vengono registrati più messaggi di errore simili a quelli seguenti:

<Data/ora> SPID<ID> * * * il dump dello Stack viene inviato a <nome disco>: \Programmi\Microsoft SQL Server\MSSQL12. SQL2014\MSSQL\LOG\SQLDump0002.txt<Data/ora> SPID<ID> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <data/ora> SPID<id> * <Data/ora> SPID<ID> * Begin STACK dump: <Data Time> SPID<ID> * <Data Time> spid<ID><Data e ora> SPID<ID> * build del server privato. <Data/ora> SPID<ID> * <data e ora> SPID<ID> * location: <percorso file> \xmcolenc.inl: 413<Data/ora> SPID<ID> * espressione: PF_CURRENT_STATUS = = PFS_OK<Data/ora> SPID<ID> * (in XMColumnEncoder<carattere non firmato *>:: EncodeValueForSecondary) <data e ora> SPID<ID> * SPID: 60<data e ora> SPID<ID> * ID processo : 3680<Data/ora> SPID<ID> * Descrizione: HR: 0x0<data e ora> SPID<id> * <data e ora> SPID<ID> * buffer di input 136 byte-<Data Time> SPID<ID> * ALTER TABLE Table_1 ALTER COLUMN col1 nvarchar (500) not null;

Risoluzione

Dopo aver applicato questo hotfix, è possibile che venga visualizzato il messaggio di errore seguente quando la query DDL non riesce:

L'istruzione ALTER TABLE non è riuscita perché un dizionario secondario ha raggiunto il limite massimo di dimensione. Considerare l'eliminazione dell'indice columnstore, la modifica della colonna e la creazione di un nuovo indice columnstore

Questa correzione consente inoltre di evitare che i file di dump della memoria vengano generati nel log degli errori di SQL Server. il problema è stato risolto per la prima volta nei seguenti aggiornamenti cumulativi di SQL Server:

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. È consigliabile scaricare e installare gli aggiornamenti cumulativi più recenti 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.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×