Simptomi
Pieņemsim, ka jums ir tabula ar sagrupētu columnstore indeksu programmā Microsoft SQL Server 2014. Jūs izpildāt DDL vaicājumu par tabulu, lai mainītu esošas kolonnas datu tipu. Piemēram, jūs atjaunināt datu tipu Column_1 no Table_1 no VARCHAR (499) uz NVARCHAR (500), izpildot šādu komandu:
ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL
Šajā situācijā rodas vairākas apgalvojuma kļūmes, un tiek parādīts šāds kļūdas ziņojums:
Atrašanās vieta: <faila ceļš> \Xmcolenc.INL: 413Expression: PF_CURRENT_STATUS = = PFS_OK (XMColumnEncoder<neparakstīts CHAR *>: EncodeValueForSecondary) spid: <spid>procesa ID: <procesa ID >apraksts: HR: 0X0Location: <faila ceļš> \xmerror.cpp: 43Expression: 0 (in PFSetLastError) SPID: <SPID>procesa ID: <procesa ID>apraksts: HR: 0x0
Papildus tiek ģenerēti vairāki atmiņas izmetes faili SQL Server kļūdu žurnālā, un vairāki kļūdu ziņojumi, kas līdzinās tālāk norādītajiem, tiek reģistrēti SQL Server kļūdu žurnālā:
<datuma laiks> SPID<ID> * * * steka izgāztuve tiek sūtīta uz <diska nosaukumu>: \Program faili\Microsoft SQL Server\MSSQL12. SQL2014\MSSQL\LOG\SQLDump0002.txt<datumu laiks> SPID<ID> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <datums laiks> SPID<ID> * <datuma laiks> SPID<id> * sākt steka dumpi: <datuma laiku>. <datuma laiks> SPID<ID> * <datuma laiks> SPID<ID> * atrašanās vieta: <faila ceļš> \xmcolenc.INL: 413<datumu laiks> SPID<ID> * izteiksmi: PF_CURRENT_STATUS = = PFS_OK EncodeValueForSecondary datums laiks<SPID> ID<* (in XMColumnEncoder> neparakstīts CHAR *<:)> datuma laiks <SPID> ID<* SPID: 60> datuma laiks<SPID> ID<* procesa ID : 3680<datuma laiks> SPID<ID> * apraksts: HR: 0x0<datuma laiks> SPID<ID> * <datuma laiks> spid<ID> * Input Buffer 136 BYTES-<datuma laiku> SPID<ID> * mainīt tabulu Table_1 mainīt kolonnas Kolonna1 NVARCHAR (500) Not Null.
Risinājums
Kad ir lietots šis labojumfails, iespējams, saņemsit tālāk norādīto jauno kļūdas ziņojumu, kad DDL vaicājums neizdosies:
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, pēc tam izveidot jaunu columnstore indeksu
Šis labojums arī neļauj ģenerēt atmiņas izmetes failus no SQL Server kļūdu reģistrēšanas. Šī problēma pirmo reizi tika novērsta tālāk norādītajos kumulatīvajos SQL Server atjauninājumos:
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Iesakām lejupielādēt un instalēt jaunākos SQL Server kumulatīvos atjauninājumus:
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".