Ongelman ilmenemistapa
Oletetaan, että sinulla on Microsoft SQL Server 2014:ssä taulukko, jossa on klusteroitu pylvässäilöindeksi. Muuta aiemmin luodun sarakkeen tietotyyppiä suorittamalla DDL-kysely taulukossa. Voit esimerkiksi päivittää Table_1 Column_1 tietotyypin VARCHARista (499) NVARCHAR-arvoon (500) suorittamalla seuraavan komennon:
ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL
Tässä tapauksessa tapahtuu useita vahvistusvirheitä, ja näyttöön tulee seuraava virhesanoma:
Huomautus
Sijainti: <Tiedostopolku>\xmcolenc.inl:413
Lauseke: PF_CURRENT_STATUS == PFS_OK
(XMColumnEncoderissa)<unsigned char *>::EncodeValueForSecondary)
SPID: <SPID>
Prosessin tunnus: <Prosessin tunnus>
Kuvaus: hr: 0x0
Sijainti: <Tiedostopolku>\xmerror.cpp:43
Lauseke: 0
(PFSetLastErrorissa)
SPID: <SPID>
Prosessin tunnus: <Prosessin tunnus>
Kuvaus: hr: 0x0
Lisäksi SQL Server -virhelokikansioon luodaan useita muistivedostiedostoja ja SQL Server -virhelokiin kirjataan useita seuraavankaltaisia virhesanomia:
Huomautus
<
Päivämäärä ja aika> spid-tunnus<> ***Pinovedos lähetetään levylle< nimi>:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\LOG\SQLDump0002.txt
<
Päivämäärä ja aika> spid-tunnus<> * *******************************************************************************
<
Päivämäärä ja aika> spid-tunnus<>*
<
Päivämäärä ja aika> spid-tunnus<>* ALOITA PINOVEDOS:
<
Päivämäärä ja aika> spid<ID>* <Päivämäärä ja aika>spid-tunnus<>
<
Päivämäärä ja aika> spid<ID>* Yksityinen palvelimen koontiversio.
<
Päivämäärä ja aika> spid-tunnus<>*
<
Päivämäärä ja aika> spid<ID>* Sijainti: <Tiedostopolku>\xmcolenc.inl:413
<
Päivämäärä ja aika> spid<ID>* Lauseke: PF_CURRENT_STATUS == PFS_OK
<
Päivämäärä ja aika> spid<ID>* (XMColumnEncoderissa<unsigned char *>::EncodeValueForSecondary)
<
Päivämäärä ja aika> spid-tunnus<>* SPID: 60
<
Päivämäärä ja aika> spid-tunnus<>* Prosessin tunnus: 3680
<
Päivämäärä ja aika> spid<ID>* Kuvaus: hr: 0x0
<
Päivämäärä ja aika> spid-tunnus<>*
<
Päivämäärä ja aika> spid<ID>* Syötepuskuri 136 tavua –
<
Päivämäärä ja aika> spid<ID>* ALTER TABLE Table_1 ALTER COLUMN COL1 NVARCHAR(500) NOT NULL;
Ratkaisu
Tämän Hotfix-korjauksen käyttöönoton jälkeen näyttöön saattaa tulla seuraava uusi virhesanoma, kun DDL-kysely epäonnistuu:
Huomautus
ALTER TABLE -lauseke epäonnistui, koska toissijainen sanasto saavutti enimmäiskokorajoituksen. Harkitse sarakesäilön indeksin poistamista, sarakkeen muuttamista ja uuden sarakesäilön indeksin luomista
Tämä korjaus estää myös muistivedostiedostojen luomisen SQL Server -virhelokissa.
Ongelma korjattiin ensimmäisen kerran seuraavissa SQL Server kumulatiivisissa päivityksissä:
Suositus: Asenna uusin kumulatiivinen päivitys SQL Server:lle
Jokainen uusi SQL Server -kumulatiivinen päivitys sisältää kaikki edelliseen kumulatiiviseen päivitykseen sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Suosittelemme, että lataat ja asennat uusimmat kumulatiiviset päivitykset SQL Server:lle:
Tila
Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.