Update: Tritt bei SQL Server 2014 2016 und 2017 "Ungültiger Vergleich durch keine SORTIERUNG" Retail assert

Gilt für: SQL Server 2014 DeveloperSQL Server 2014 EnterpriseSQL Server 2014 Enterprise Core

Problembeschreibung


Angenommen Sie, eine Abfrage, die einige Operationen z. B. führt Verkettung auf CHAR oder VARCHAR-Spalten in Microsoft SQL Server 2014 2016 und 2017 haben. Betrachten Sie das folgende Szenario:

  • Verketten von Spalten mit unterschiedlichen Sortierreihenfolgen, die ihnen zugewiesen sind.
  • Diese Kollatierungen sind nicht miteinander kompatibel. Sie versuchen z. B. verketten eine Spalte, die als Latin1_General_CI_AI mit Latin1_General_BIN sortiert.
  • Das endgültige Ergebnis der Verkettung wird eine bestimmte Sortierung (einschließlich "Database_default") ganz Konfliktbehebung Sortierung zugewiesen.

In diesem Fall SQL Server möglicherweise einer assert "Ungültigen Vergleich durch keine SORTIERUNG" heißt und möglicherweise einige Fehlermeldungen, die die folgenden ähneln:

Location:     typinfo.cpp:LineNumber
Ausdruck: false
SPID:         SPID
Prozess-ID: ProcessID
Beschreibung: Ungültiger Vergleich durch keine SORTIERUNG.
 

Msg 3624 auf 20, Status 1, Zeile Zeilennummer
Ein Assertion Systemtest ist fehlgeschlagen. Überprüfen Sie das SQL Server-Fehlerprotokoll für Details. Ein Assertionsfehler ist in der Regel eine Software Fehler oder beschädigte Daten zurückzuführen. Um eine Beschädigung der Datenbank überprüfen, sollten Sie DBCC CHECKDB ausführen. Wenn Sie Dumps an Microsoft senden, während der Installation wird ein Mini-Abbild an Microsoft gesendet. Ein Update möglicherweise das neueste Service Pack oder einen Hotfix vom technischen Support von Microsoft.

Msg 596, Ebene 21, Status 1, Zeile Zeilennummer
Die Ausführung kann nicht fortgesetzt werden, weil die Sitzung den Kill-Status ist.

Msg 0, Ebene 20, Status 0, Zeile Zeilennummer

Schwerwiegender Fehler bei aktuellem Befehl.  Die Ergebnisse sollten ggf. verworfen.

Ursache


SQL Server versucht Phase Optimierung Abfrage Kardinalitäten auf Zwischenergebnisse aus verschiedenen Phasen der Abfrage z. B. die Verkettung zu berechnen. Da Konfliktbehebung Sortierung Ende erfolgt, wird der Abfrageoptimierer möglicherweise nicht bewusst und Berechnung der Verkettung Kardinalität auf Konflikt Sortierung auszuführen versucht.

Problemlösung


Dieses Problem ist für SQL Server die folgenden kumulativen Updates behoben:

Kumulative update für SQL Server 2016 SP1 8

Kumulative Update 4 für SQL Server 2017

Kumulative Update 9 für SQL Server 2014 SP2

Status


Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.

Referenzen


Informationen Sie zur Terminologie , die Microsoft-Softwareupdates verwendet.