Simptomi
Pieņemsim, ka jums ir vaicājums, kas veic dažas virkņu darbības, piemēram, savienošanas ar CHAR vai VARCHAR kolonnām programmā Microsoft SQL Server 2014, 2016 un 2017. Iedomājieties šādu scenāriju:
-
Jūs savienojat kolonnas ar dažādām tām piešķirtām salīdzināšanu.
-
Šīs komplektēšanas nav saderīgas ar citu. Piemēram, jūs mēģināt savienot kolonnu, kas tiek apvienota ar Latin1_General_CI_AI, izmantojot Latin1_General_BIN.
-
Salīdzināšanas konflikta risināšanas rezultāts ir piešķirts specifiskai komplektēšanai (ieskaitot "database_default").
Šajā scenārijā, izmantojot SQL Server, var tikt atgriezts mazumtirdzniecības paziņojums, kurā norādīts, ka nav samaksāts bez KOMPLEKTĒŠANAs, un, iespējams, tiek parādīti daži kļūdu ziņojumi, kas līdzinās tālāk norādītajiem.
Atrašanās vieta: typinfo. cpp:rindas numurs% Izteiksme: FALSE SPID: SPID Procesa ID: ProcessID Apraksts: nederīgs salīdzinājums, jo nav KOMPLEKTĒŠANAs.
Msg 3624, Level 20, State 1, Line rindas numurs% Sistēmas apgalvojuma pārbaude neizdevās. Detalizētu informāciju skatiet SQL Server kļūdu žurnāls. Parasti apgalvotās kļūmes cēlonis ir programmatūras kļūda vai datu bojājums. Lai pārbaudītu datu bāzes bojājumus, apsveriet iespēju palaist DBCC CHECKDB. Ja esat piekritis sūtīt izgāztuves uz Microsoft iestatīšanas laikā, korporācijai Microsoft tiks nosūtīta mazā izmete. Atjauninājums var būt pieejams no Microsoft jaunākās servisa pakotnēs vai labojumfailā no tehniskā atbalsta.
Msg 596, Level 21, State 1, Line rindas numurs% Nevar turpināt izpildi, jo sesija ir slepkavības stāvoklī.
Msg 0, Level 20, State 0, Line rindas numurs%
Pašreizējā komandā radās nopietna kļūda. Rezultāti, ja tādi ir, ir jāizmet.
Cēlonis
Vaicājuma optimizācijas posmā SQL Server mēģina aprēķināt kardinālus par dažādiem vaicājuma posma rezultātiem, piemēram, savienošanas. Tā kā salīdzināšanas konfliktu risināšana notiek uzreiz, vaicājuma optimizētājs, iespējams, par to neapzinās un mēģina veikt datu savienošanas kardināla aprēķinu, izmantojot konfliktējošas komplektēšanas.
Risinājums
Šī problēma ir novērsta tālāk norādītajos kumulatīvajos SQL Server atjauninājumos:
Kumulatīvais atjauninājums 8 SQL Server 2016 SP1
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ā. Skatiet jaunākos kumulatīvos atjauninājumus SQL Server:
Jaunākais SQL Server 2016 kumulatīvais atjauninājums
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".
Atsauces
Uzziniet par terminoloģiju, ko Microsoft izmanto, lai aprakstītu programmatūras atjauninājumus.