Príznaky
Predpokladajme, že máte dotaz, ktorý vykoná niektoré operácie reťazcov, napríklad zreťazenie, v stĺpcoch CHAR alebo VARCHAR v Microsoft SQL Server 2014, 2016 a 2017. Zoberme si nasledujúcu situáciu:
-
Zlúčite stĺpce s rôznymi zoradenými zoradenými spôsobmi.
-
Tieto zoradenia sú nezlučiteľné s navzájom. Pokúsite sa napríklad spojiť stĺpec, ktorý je zoradený ako Latin1_General_CI_AI s Latin1_General_BIN.
-
Konečný výsledok zreťazenia je priradený k určitému zoradeniu (vrátane "database_default") ako záležitosť riešenia konfliktov zoradenia.
V tomto scenári môže SQL Server vrátiť maloobchodné uplatnenie, ktoré uvádza "neplatné porovnanie z dôvodu ŽIADNEho zoradenia", a môže sa zobraziť niekoľko chybových hlásení, ktoré sa podobajú takto:
Umiestnenie: TypInfo. cpp:lineNumber Výraz: False číslo SPID: číslo SPID Identifikácia procesu: ProcessID Popis: neplatné porovnanie z dôvodu ŽIADNEho zoradenia.
MSG 3624, úroveň 20, štát 1, Riadková lineNumber Kontrola systémových tvrdení zlyhala. Podrobnosti nájdete v denníku chýb servera SQL Server. Zlyhanie pri tvrdení zvyčajne spôsobuje chybu softvéru alebo poškodenie údajov. Ak chcete skontrolovať poškodenie databázy, zvážte spustenie príkazu DBCC CHECKDB. Ak ste súhlasili s odoslaním výpisov do spoločnosti Microsoft počas inštalácie, na spoločnosť Microsoft sa odošle mini vý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 z technickej podpory.
MSG 596, úroveň 21, štát 1, Riadková lineNumber Nie je možné pokračovať v prevedení, pretože relácia je v stave Kill.
MSG 0, úroveň 20, stav 0, Riadková lineNumber
V aktuálnom príkaze sa vyskytla závažná chyba. Prípadné výsledky by mali byť zahodené.
Príčina
Počas fázy optimalizácie dotazu sa SQL Server pokúsi spočítať kardinály na priebežné výsledky rôznych fáz dotazu, napríklad zreťazenie. Vzhľadom na to, že riešenie konfliktov zoradenia sa uskutočňuje na samom konci, môže sa stať, že optimalizácia dotazov nebudete vedieť a pokúsi sa vykonať výpočet zreťazenia na vstupe s konfliktným zoradením.
Riešenie
Tento problém je vyriešený v nasledujúcich kumulatívnych aktualizáciách pre SQL Server:
Kumulatívna aktualizácia balíka 8 pre SQL Server 2016 SP1
Každá nová Kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúcej kumulatívnej aktualizácie. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:
Posledná Kumulatívna aktualizácia pre SQL Server 2016
Stav
Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.
Odkazy
Oboznámte sa s terminológiou, ktorú spoločnosť Microsoft používa na popis aktualizácií softvéru.