KB3098529 — LABOJUMS: apgalvojuma kļūme, mainot kolonnas tipu programmā SQL Server 2014

Attiecas uz
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Pazīmes

Pieņemsim, ka jums ir tabula, kurā ir sagrupēts kolonnu krātuves indekss Microsoft SQL Server 2014. Jūs palaižat DDL vaicājumu tabulā, lai mainītu esošas kolonnas datu tipu. Piemēram, Column_1 Table_1 datu tipu no VARCHAR (499) uz NVARCHAR (500) varat atjaunināt, izpildot šādu komandu:

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

Šādā gadījumā rodas vairākas apstiprināšanas kļūmes, un tiek parādīts šāds kļūdas ziņojums:

Piezīme

Atrašanās vieta: <Faila ceļš>\xmcolenc.inl:413
Izteiksme: PF_CURRENT_STATUS == PFS_OK
(XMColumnEncoder<neparakstīts char *>::EncodeValueForSecondary)
SPID: <SPID>
Procesa ID: <Procesa ID>
Apraksts: hr: 0x0

Atrašanās vieta: <faila ceļš>\xmerror.cpp:43
Izteiksme: 0
(PFSetLastError)
SPID: <SPID>
Procesa ID: <Procesa ID>
Apraksts: hr: 0x0

Turklāt mapē SQL Server Kļūdu žurnāls tiek ģenerēti vairāki atmiņas izmetes faili, un vairāki kļūdu ziņojumi, kas ir līdzīgi šiem, tiek reģistrēti SQL Server kļūdu žurnālā.

Piezīme

< Datums un laiks> spid<ID> ***Steka izmete tiek sūtīta uz <diska nosaukumu>:\Program Files\Microsoft SQL Server\MSSQL12.SQL2014\MSSQL\LOG\SQLDump0002.txt
< Datums un laiks> spid<ID> * *******************************************************************************
< Datums un laiks> spid<ID>*
< Datums un laiks> SPID<ID*> SĀKT STEKA IZMETI:
< Datums un laiks> spid<ID>* <Datums Laiks> spid<ID>
< Datums un laiks> spid<ID>* Privāta servera būvējums.
< Datums un laiks> spid<ID>*
< Datums un laiks> spid<ID>* atrašanās vieta: <faila ceļš>\xmcolenc.inl:413
< Datums un laiks> spid<ID>* izteiksme: PF_CURRENT_STATUS == PFS_OK
< Datums un laiks> spid<ID>* (XMColumnEncoder<neparakstīts char *>::EncodeValueForSecondary)
< Datums un laiks> spid<ID>* SPID: 60
< Datums un laiks> spid<ID>* Procesa ID: 3680
< Datums un laiks> spid<ID>* Apraksts: hr: 0x0
< Datums un laiks> spid<ID>*
< Datums un laiks> spid<ID>* Ievades buferis: 136 baiti -
< Datums un laiks> spid<ID>* ALTER TABLE Table_1 ALTER COLUMN COL1 NVARCHAR(500) NOT NULL;

Risinājums

Pēc šī labojumfaila lietošanas var tikt parādīts šāds jauns kļūdas ziņojums, ja DDL vaicājums neizdodas:

Piezīme

Priekšraksts ALTER TABLE neizdevās, jo sekundārā vārdnīca sasniedza maksimālo lieluma ierobežojumu. Apsveriet iespēju nomest columnstore indeksu, mainīt kolonnu un pēc tam izveidot jaunu columnstore indeksu

Šis labojums arī neļauj ģenerēt atmiņas izmetes failus SQL Server kļūdu žurnālā.

Šī problēma vispirms tika novērsta šādos kumulatīvajos SQL Server atjauninājumos:

Ieteikums: instalējiet jaunāko kumulatīvo atjauninājumu serverim SQL Server

Katrā jaunajā SQL Server kumulatīvajā atjauninājumā ir visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Ieteicams lejupielādēt un instalēt jaunākos kumulatīvos SQL Server atjauninājumus:

      

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".