Symptom
Anta att du har en tabell som har ett grupperat columnstore-index i Microsoft SQL Server 2014. Du kör en DDL-fråga mot tabellen för att ändra datatypen för en befintlig kolumn. Du kan till exempel uppdatera datatypen för Column_1 av Table_1 från VARCHAR (499) till NVARCHAR (500) genom att köra följande kommando:
ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL
I det här fallet inträffar flera kontrollfel och du får följande felmeddelande:
Obs
Plats: <Filsökväg>\xmcolenc.inl:413
Uttryck: PF_CURRENT_STATUS == PFS_OK
(i XMColumnEncoder<unsigned char *>::EncodeValueForSecondary)
SPID: <SPID>
Process-ID: <Process-ID>
Beskrivning: hr: 0x0
Plats: <Sökväg>\xmerror.cpp:43
Uttryck: 0
(i PFSetLastError)
SPID: <SPID>
Process-ID: <Process-ID>
Beskrivning: hr: 0x0
Dessutom genereras flera minnesdumpfiler i felloggmappen för SQL Server och flera felmeddelanden som liknar följande loggas i felloggen för SQL Server:
Obs
<
Datum/tid> spid<ID> ***Stackdump skickas till <disknamnet>:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\LOG\SQLDump0002.txt
<
Datum/tid> spid<ID> * *******************************************************************************
<
Datum/tid> spid<ID*>
<
Datum/tid> spid<ID*> BEGIN STACK DUMP:
<
Datum/tid> spid<ID*><Datum/tid> spid<ID>
<
Datum/tid> spid<ID*> Privat serverversion.
<
Datum/tid> spid<ID*>
<
Datum/tid> spid<ID*> Plats: <Filsökväg>\xmcolenc.inl:413
<
Datum/tid> spid<ID>*-uttryck: PF_CURRENT_STATUS == PFS_OK
<
Datum/tid> spid<ID*> (i XMColumnEncoder<unsigned char *>::EncodeValueForSecondary)
<
Datum/tid> spid<ID* SPID:> 60
<
Datum/tid> spid<ID*> Process-ID: 3680
<
Datum/tid> spid<ID*> Beskrivning: hr: 0x0
<
Datum/tid> spid<ID*>
<
Datum/tid> spid<ID*>-indatabuffert 136 byte –
<
Datum/tid> spid<ID*> ALTER TABLE Table_1 ALTER COLUMN COL1 NVARCHAR(500) NOT NULL;
Lösning
När du har installerat den här snabbkorrigeringen kan du få följande nya felmeddelande när DDL-frågan misslyckas:
Obs
ALTER TABLE-instruktionen misslyckades eftersom en sekundär ordlista nådde den maximala storleksgränsen. Överväg att släppa columnstore-indexet, ändra kolumnen och sedan skapa ett nytt columnstore-index
Den här korrigeringen förhindrar också att minnesdumpfilerna genereras i felloggen för SQL Server.
Problemet åtgärdades först i följande kumulativa uppdateringar av SQL Server:
Rekommendation: Installera den senaste kumulativa uppdateringen för SQL Server
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabbkorrigeringar och alla säkerhetskorrigeringar som ingick i den tidigare kumulativa uppdateringen. Vi rekommenderar att du laddar ned och installerar de senaste kumulativa uppdateringarna för SQL Server:
- Senaste kumulativa uppdateringen för SQL Server 2014 SP1
- Senaste kumulativa uppdateringen för SQL Server 2014
Status
Microsoft har bekräftat att detta är ett problem i de Microsoft-produkter som anges i avsnittet "Gäller".