KB4054398 – RETTELSE: Detailpåstanden "Ugyldig sammenligning pga. INGEN SORTERING" forekommer i SQL Server 2014, 2016 og 2017

Gælder for
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2017 Standard on Windows SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Symptomer

Antag, at du har en forespørgsel, der udfører nogle strenghandlinger, f.eks. sammenkædning, på CHAR- eller VARCHAR-kolonner i Microsoft SQL Server 2014, 2016 og 2017. Overvej følgende scenarie:

  • Du sammenkæder kolonner med forskellige sorteringer, der er tildelt til dem.
  • Disse sorteringer er uforenelige med hinanden. Du forsøger f.eks. at sammenkæde en kolonne, der er sorteret som Latin1_General_CI_AI med Latin1_General_BIN.
  • Det endelige resultat af sammenkædningen tildeles en bestemt sortering (herunder "database_default") som et spørgsmål om løsning af sorteringskonflikten.

I dette scenarie returnerer SQL Server muligvis en detailpåstand, der angiver "Ugyldig sammenligning pga. INGEN SÆTVIS sortering", og du kan få vist nogle fejlmeddelelser, der minder om følgende:

Bemærk

  • Sted: typinfo.cpp:LineNumber
    Udtryk: falsk
    SPID: SPID
    Proces-id: Proces-id
    Beskrivelse: Ugyldig sammenligning pga. INGEN SORTERING.

  • Msg 3624, niveau 20, stat 1, linjenummer
    En systemassertionskontrol mislykkedes. Kontrollér SQL Server-fejlloggen for at få flere oplysninger. Typisk er en assertionsfejl forårsaget af en softwarefejl eller beskadigelse af data. Hvis du vil kontrollere for beskadigede databaser, skal du overveje at køre DBCC CHECKDB. Hvis du har accepteret at sende dumps til Microsoft under installationen, sendes et minidump til Microsoft. Der kan være en opdatering tilgængelig fra Microsoft i den seneste servicepakke eller i et hotfix fra teknisk support.

  • Msg 596, Level 21, State 1, Line LineNumber
    Kan ikke fortsætte udførelsen, fordi sessionen er i kill-tilstand.

  • Msg 0, niveau 20, Stat 0, linjenummer

  • Der opstod en alvorlig fejl på den aktuelle kommando.  Eventuelle resultater skal kasseres.

Årsag

I fasen forespørgselsoptimering forsøger SQL Server at beregne kardinaliteter på mellemliggende resultater i forskellige stadier af forespørgslen, f.eks. sammenkædningen. Da løsningen af sætvis konflikt finder sted i slutningen, er forespørgselsoptimeringsfunktionen muligvis ikke klar over det og forsøger at udføre beregningen af sammenkædningskardinaliteten på et input med uoverensstemmende sortering.

Løsning

Dette problem er rettet i følgende kumulative opdateringer til SQL Server:

Kumulativ opdatering 8 til SQL Server 2016 SP1

Kumulativ opdatering 4 til SQL Server 2017

Kumulativ opdatering 9 til SQL Server 2014 SP2

Om kumulative opdateringer til SQL Server:

Hver ny kumulativ opdatering til SQL Server indeholder alle de hotfixes og alle de sikkerhedsrettelser, der fulgte med den forrige kumulative opdatering. Se de seneste kumulative opdateringer til SQL Server:

Seneste kumulative opdatering til SQL Server 2016

Seneste kumulative opdatering til SQL Server 2017

Seneste kumulative opdatering til SQL Server 2014

Status

Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".

Referencer

Få mere at vide om den terminologi, som Microsoft bruger til at beskrive softwareopdateringer.