Simptomai
Tarkime, kad turite užklausą, kuri atlieka tam tikrą eilutę operacijas, pvz., sujungimo, "Microsoft SQL Server" 2014, "2016" ir "2017" CHAR arba "VARCHAR" stulpeliuose. Apsvarstykite šį scenarijų:
-
Galite sujungti stulpelius su skirtingais jiems priskirtais sulyginimais.
-
Šie sugretinimai nesuderinami vienas su kitu. Pvz., bandote sujungti stulpelį, kuris sugretinamas kaip Latin1_General_CI_AI su Latin1_General_BIN.
-
Galutinis sujungimo rezultatas yra priskiriamas specifiniams sulygintiems (įskaitant "database_default") kaip sugretinimo konfliktų sprendimo dalykas.
Pagal šį scenarijų, "SQL Server" gali pateikti mažmeninės prekybos pranešimą, kuriame teigiama, kad "neleistinas palyginimas, nes nėra COLLATION", ir galite gauti klaidų pranešimą, kuris panašus į šį:
Vieta: typinfo. cpp:LineNumber Reiškinys: klaidingas SPID: SPID Proceso ID: ProcessID Aprašas: neleistinas palyginimas, nes nėra SUGRETINIMO.
MSG 3624, lygis 20, būsenos 1, linijinė LineNumber Sistemos patvirtinimo tikrinimas nepavyko. Patikrinkite SQL serverio klaidų žurnalų išsamią informaciją. Paprastai loginė klaida kyla dėl programinės įrangos klaidų arba duomenų sugadinimo. Norėdami patikrinti, ar yra duomenų bazės gedimas, apsvarstykite galimybę vykdyti DBCC CHECKDB. Jei sutikote siųsti "Microsoft" į "Microsoft" sąrankos metu, "Microsoft" bus nusiųstas mini dump. Naujinimą galima gauti iš "Microsoft" naujausiame pakeitimų pakete arba karštųjų pataisų iš techninės pagalbos.
MSG 596, lygis 21, būsenos 1, linijinė LineNumber Negalima tęsti vykdymo, nes seansas yra naikinimo būsenoje.
MSG 0, 20 lygio, būsenos 0 , linijinė linija
Dabartinėje komandoje įvyko rimta klaida. Rezultatai, jei jų yra, turi būti šalinami.
Priežastis
Atliekant užklausos optimizavimo etapą, "SQL Server" bando apskaičiuoti įvairius užklausos etapų tarpinius rezultatus, pvz., "CONCATENATION". Kadangi sugretinimo konfliktų sprendimas vyksta pačioje pabaigoje, užklausos optimizatorius gali nežinoti ir bando atlikti skaičiavimus, kurie buvo sujungti su kogali, su prieštaravimu.
Sprendimas
Ši problema išspręsta SQL serverio kaupiamajame naujinime:
Kaupiamasis naujinimas 8 SQL serverio 2016 SP1
Kiekvienas naujas Kaupiamasis naujinimas, skirtas "SQL Server", yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio kaupiamojo naujinimo. Peržiūrėkite naujausius kaupiamuosius SQL serverio naujinimus:
Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2016"
Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2017"
Naujausias Kaupiamasis naujinimas, skirtas "SQL Server 2014"
Statusą
"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.
Nuorodos
Sužinokite apie terminologiją, kurią "Microsoft" naudoja programinės įrangos naujinimams apibūdinti.