Symptomen
Stel dat u een tabel hebt met een gegroepeerde column column in Microsoft SQL Server 2014. U voert een DDL-query uit op de tabel om het gegevenstype van een bestaande kolom te wijzigen. U kunt bijvoorbeeld het gegevenstype voor Column_1 van Table_1 uit VARCHAR (499) wijzigen in NVARCHAR (500) door de volgende opdracht uit te voeren:
ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL
In deze situatie treden meerdere bevestigings fouten op en wordt het volgende foutbericht weergegeven:
Locatie: <bestandspad> \Xmcolenc.inl: 413Expression: PF_CURRENT_STATUS = = PFS_OK (in XMColumnEncoder<unsigned char *>:: EncodeValueForSecondary) SPID: <SPID>Process ID: <naam ><0X0LOCATION : \Xmerror.cpp: 0 (in 43Expression) SPID:> SPID <Process ID:>naam van een <naam:
Daarnaast worden ook meerdere geheugendumpbestanden gegenereerd in de map met het foutenlogboek van SQL Server, en meerdere foutberichten die op de volgende lijken, worden vastgelegd in het foutenlogboek van SQL Server:
<datum tijd> SPID<id> * * * stack Dump wordt verzonden naar <schijfnaam>: \Program Files\Microsoft SQL Server\MSSQL12. SQL2014\MSSQL\LOG\SQLDump0002.txt<datum tijd> SPID<id> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <datum tijd> SPID<id> * <datum tijd> SPID<id> * begin STACK dump: <datum tijd> SPID<id> * <datum tijd> spid<id><de persoonlijke server <datum tijd> SPID<id> * <datum tijd> spid<ID> * locatie: <bestandspad> \xmcolenc.inl: 413<datum tijd> spid<id> * expressie: PF_CURRENT_STATUS = = PFS_OK<datum tijd> SPID<id> * (in XMColumnEncoder<unsigned char *>:: EncodeValueForSecondary) <datum tijd> SPID<id> * SPID: 60<datum tijd> SPID<id> * SPID: datum tijd SPID id * proces-id ID : 3680<datum tijd> SPID<id> * beschrijving: HR: 0x0<datum tijd> SPID<id> * <datum tijd> spid<id> * invoer buffer 136 bytes-<datum tijd> SPID<id> * ALTER TABLE Table_1 Change column Kol1 NVARCHAR (500) niet Null;
Oplossing
Nadat u deze hotfix hebt toegepast, wordt mogelijk het volgende nieuwe foutbericht weergegeven wanneer de DDL-query mislukt:
ALTER TABLE statement is mislukt omdat een secundaire woordenlijst de maximale bestandsgrootte heeft bereikt. Overweeg de column column-index te verwijderen, de kolom te wijzigen en vervolgens een nieuwe columnstore-index te maken.
Deze oplossing zorgt er ook voor dat de geheugendumpbestanden niet worden gegenereerd in SQL Server-foutenlogboek. het probleem voor het eerst opgelost in de volgende cumulatieve updates van SQL Server:
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige cumulatieve update. U wordt aangeraden de nieuwste cumulatieve updates voor SQL Server te downloaden en te installeren:
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.