Požymiai
Tarkime, kad turite užklausą, kuri atlieka tam tikras eilutės operacijas, pvz., sujungimą, stulpeliuose CHAR arba VARCHAR "Microsoft „SQL Server“ 2014", 2016 ir 2017. Apsvarstykite šį scenarijų:
- Stulpeliai sujungiami naudojant skirtingus jiems priskirtus sugretinimus.
- Šie sugretinimai nesuderinami vienas su kitu. Pavyzdžiui, bandote sujungti stulpelį, kuris sugretintas kaip Latin1_General_CI_AI su Latin1_General_BIN.
- Galutinis sujungimo rezultatas priskiriamas konkrečiam sugretinimui (įskaitant "database_default"), kaip sugretinimo neatitikimo sprendimo klausimas.
Tokiu atveju "„SQL Server“" gali grąžinti mažmeninės prekybos teiginį, kuriame nurodoma "Netinkamas palyginimas dėl NĖRA GRETINIMO", ir galite gauti klaidų pranešimus, panašius į šiuos:
Pastaba
Vieta: typinfo.cpp:LineNumber
Išraiška: false
SPID: SPID
Proceso ID: Proceso ID
Aprašas: Netinkamas palyginimas, nes NĖRA GRETINIMO.Pranešimas 3624, 20 lygis, 1 būsena, eilutės numeris
Sistemos patvirtinimo patikra nepavyko. Išsamios informacijos ieškokite „SQL Server“ klaidų žurnale. Paprastai patvirtinimo triktį sukelia programinės įrangos klaida arba duomenų sugadinimas. Norėdami patikrinti, ar duomenų bazė nesugadinta, paleiskite DBCC CHECKDB. Jei sąrankos metu sutikote siųsti iškeltis "„Microsoft“", "„Microsoft“" bus nusiųsta mini iškeltis. Naujinimas gali būti gautas iš "„Microsoft“" naujausiame pakeitimų pakete arba techninio palaikymo tarnybos karštojoje pataisoje.Pranešimas 596, 21 lygis, 1 būsena, eilutės eilutės numeris
Negalima tęsti vykdymo, nes seansas yra nužudymo būsenos.Pranešimas 0, 20 lygis, būsena 0, eilutės numeris
Dabartinėje komandoje įvyko rimta klaida. Rezultatus, jei tokių yra, reikia atmesti.
Priežastis
Užklausų optimizavimo etape „SQL Server“ bando apskaičiuoti įvairių užklausos etapų tarpinių rezultatų, pavyzdžiui, sujungimo, kardinalumą. Kadangi sugretinimo neatitikimų sprendimas vyksta pačioje pabaigoje, užklausų optimizavimo priemonė gali to nežinoti ir bando atlikti sujungimo kardinalumo skaičiavimą įvestyje su nesuderinamu sugretinimu.
Sprendimas
Ši problema išspręsta šiuose kaupiamuosiuose "„SQL Server“" naujinimuose:
8 kaupiamasis naujinimas, skirtas „SQL Server“ 2016 SP1
4 kaupiamasis naujinimas, skirtas „SQL Server“ 2017
9 kaupiamasis naujinimas, skirtas „SQL Server“ 2014 SP2
Apie "„SQL Server“" kaupiamuosius naujinimus:
Kiekviename naujame „SQL Server“ kaupiamajame naujinime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį kaupiamąjį naujinimą. Peržiūrėkite naujausius "„SQL Server“" kaupiamuosius naujinimus:
Naujausias kaupiamasis naujinimas, skirtas „SQL Server“ 2016
Naujausias "„SQL Server“ 2017" kaupiamasis naujinimas
Naujausias "„SQL Server“ 2014" kaupiamasis naujinimas
Būsena
„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.
Nuorodos
Sužinokite daugiau apie terminus, kuriuos „„Microsoft““ naudoja apibūdindama programinės įrangos naujinimus.