Príznaky
Predpokladajme, že máte dotaz, ktorý vykonáva niektoré operácie reťazca, napríklad reťazenie, v stĺpcoch CHAR alebo VARCHAR v Microsoft SQL Server 2014, 2016 a 2017. Pozrite si nasledujúci scenár:
- Zreťazíte stĺpce s rôznymi zoradeniami, ktoré sú k nim priradené.
- Tieto zoradenia sú navzájom nekompatibilné. Pokúsite sa napríklad zreťaziť stĺpec, ktorý je zoradený ako Latin1_General_CI_AI s Latin1_General_BIN.
- Konečný výsledok reťazenia sa v rámci riešenia konfliktu zoradenia priradí ku konkrétnemu zoradeniu (vrátane database_default).
V tomto scenári môže SQL Server vrátiť maloobchodné tvrdenie, ktoré uvádza "Neplatné porovnanie z dôvodu ŽIADNEHO ZORADENIA", a môžu sa zobraziť niektoré chybové hlásenia, ktoré sú podobné nasledujúcemu:
Poznámka
Miesto: typinfo.cpp:LineNumber
Výraz: false
SPID: SPID
ID procesu: ProcessID
Popis: Neplatné porovnanie z dôvodu ŽIADNE ZORADENIE.Msg 3624, Level 20, State 1, Line LineNumber
Kontrola kontrol kontrol systémových kontrol zlyhala. Podrobnosti nájdete v denníku chýb SQL Server. Zlyhanie tvrdenia zvyčajne spôsobuje softvérová chyba alebo poškodenie údajov. Ak chcete skontrolovať poškodenie databázy, zvážte spustenie DBCC CHECKDB. Ak ste počas inštalácie súhlasili s odosielaním výpisov do spoločnosti Microsoft, spoločnosti Microsoft sa odošle minivýpis. Aktualizácia môže byť k dispozícii od spoločnosti Microsoft v najnovšom balíku Service Pack alebo v rýchlej oprave od technickej podpory.Msg 596, Level 21, State 1, Line LineNumber
Nie je možné pokračovať v vykonávaní, pretože relácia je v stave ukončenia.Msg 0, Level 20, State 0, Line LineNumber
V aktuálnom príkaze sa vyskytla závažná chyba. Prípadné výsledky by sa mali zahodiť.
Príčina
Počas fázy optimalizácie dotazu sa SQL Server pokúsi vypočítať kardinalitu na základe medzivýsledkov rôznych etáp dotazu, napríklad reťazenia. Keďže riešenie konfliktu zoradenia sa uskutočňuje na samom konci, optimalizátor dotazov si toho nemusí byť vedomý a pokúša sa vykonať výpočet kardinality reťazenia na vstupe s konfliktným zoradením.
Riešenie
Tento problém je opravený v nasledujúcich kumulatívnych aktualizáciách pre SQL Server:
Kumulatívna aktualizácia 8 pre SQL Server 2016 SP1
Kumulatívna aktualizácia 4 pre SQL Server 2017
Kumulatívna aktualizácia 9 pre SQL Server 2014 SP2
Informácie o kumulatívnych aktualizáciách pre SQL Server:
Každá nová kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcej kumulatívnej aktualizácii. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:
Najnovšia kumulatívna aktualizácia pre SQL Server 2016
Najnovšia kumulatívna aktualizácia pre SQL Server 2017
Najnovšia kumulatívna aktualizácia pre SQL Server 2014
Stav
Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.
Odkazy
Získajte informácie o terminológii, ktorú Microsoft používa na popis aktualizácií softvéru.