Pazīmes
Pieņemsim, ka jums ir vaicājums, kas veic dažas virknes darbības, piemēram, konkatenāciju, kolonnās CHAR vai VARCHAR programmā Microsoft SQL Server 2014, 2016 un 2017. Apsveriet šādu scenāriju:
- Kolonnas tiek savienotas ar dažādiem komplektiem, kas tām ir piešķirti.
- Šīs salīdzināšanas nav savstarpēji saderīgas. Piemēram, jūs mēģināt savienot kolonnu, kas ir sašķirota kā Latin1_General_CI_AI ar Latin1_General_BIN.
- Savienošanas gala rezultāts tiek piešķirts konkrētai salīdzināšanai (ieskaitot "database_default") kā komplektēšanas konfliktu risināšanas jautājums.
Šādā scenārijā SQL Server var atgriezt mazumtirdzniecības apliecinājumu "Nederīgs salīdzinājums, jo NAV KOMPLEKTĒŠANAS", un jums var tikt parādīti daži kļūdu ziņojumi, kas līdzīgi šim:
Piezīme
Atrašanās vieta: typinfo.cpp:LineNumber
Izteiksme: false
SPID: SPID
Procesa ID: ProcessID
Apraksts: Nederīgs salīdzinājums, jo NAV KOMPLEKTĒŠANAS.Ziņojums 3624, 20. līmenis, 1. stāvoklis, rindas rindas numurs
Sistēmas apliecinājuma pārbaude neizdevās. Detalizētu informāciju skatiet SQL Server kļūdu žurnālā. Parasti apgalvojuma kļūmi izraisa programmatūras kļūda vai datu bojājums. Lai pārbaudītu, vai datu bāzē nav bojājumu, apsveriet iespēju palaist DBCC CHECKDB. Ja iestatīšanas laikā piekritāt nosūtīt izmetes korporācijai Microsoft, korporācijai Microsoft tiks nosūtīta maza izmete. Microsoft atjauninājums var būt pieejams jaunākajā servisa pakotnē vai tehniskā atbalsta labojumfailā.Ziņojums 596, 21. līmenis, 1. stāvoklis, rindiņas numurs
Nevar turpināt izpildi, jo sesija ir novākšanas stāvoklī.Ziņojums 0, 20. līmenis, stāvoklis 0, rindas numurs
Pašreizējā komandā radās nopietna kļūda. Rezultāti, ja tādi ir, ir jāatmet.
Iemesls
Vaicājumu optimizācijas posmā SQL Server mēģina aprēķināt kardinalitātes dažādu vaicājuma posmu starpposma rezultātos, piemēram, savienošanā. Tā kā komplektēšanas konfliktu risināšana notiek pašās beigās, vaicājuma optimizētājs var to neapzināties un mēģināt aprēķināt konkatenācijas kardinālumu ievadē ar konfliktējošu komplektēšanu.
Risinājums
Šī problēma ir novērsta šādos SQL Server kumulatīvajos atjauninājumos:
8. kumulatīvais atjauninājums operētājsistēmai SQL Server 2016 SP1
SQL Server 2017 4. kumulatīvais atjauninājums
9. kumulatīvais atjauninājums operētājsistēmai SQL Server 2014 SP2
Par SQL Server kumulatīvajiem atjauninājumiem:
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ā. Skatiet jaunākos SQL Server kumulatīvos atjauninājumus:
Jaunākais kumulatīvais atjauninājums SQL Server 2016
Jaunākais kumulatīvais atjauninājums SQL Server 2017
Jaunākais kumulatīvais atjauninājums SQL Server 2014
Statuss
Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".
Atsauces
Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.