KB4054398-Fix: "Ungültiger Vergleich aufgrund einer Sortierung" Einzelhandels Assert tritt in SQL Server 2014, 2016 und 2017 auf.

Problembeschreibung

Angenommen, Sie verfügen über eine Abfrage, die einige Zeichenfolgenoperationen ausführt, beispielsweise Verkettung, auf char-oder varchar-Spalten in Microsoft SQL Server 2014, 2016 und 2017. Stellen Sie sich folgendes Szenario vor:

  • Sie verketten Spalten mit unterschiedlichen Sortierungen, die Ihnen zugewiesen sind.

  • Diese Sortierungen sind nicht miteinander kompatibel. Beispielsweise versuchen Sie, eine Spalte zu verketten, die als Latin1_General_CI_AI mit Latin1_General_BIN sortiert ist.

  • Das endgültige Ergebnis der Verkettung wird einer bestimmten Kollatierung (einschließlich "database_default") als Angelegenheit der Konfliktauflösung für die Sortierung zugewiesen.

In diesem Szenario gibt SQL Server möglicherweise einen Retail-Assert zurück, in dem "Ungültiger Vergleich aufgrund einer Kollatierung" angegeben ist, und möglicherweise werden einige Fehlermeldungen angezeigt, die wie folgt aussehen:

Ort: TypInfo. cpp:LineNumber Ausdruck: falsch SPID: SPID Prozess-ID: Prozess -ID Beschreibung: Ungültiger Vergleich aufgrund einer Sortierung.

Msg 3624, Ebene 20, Zustand 1, Zeile LineNumber Eine System Assertionsüberprüfung ist fehlgeschlagen. Weitere Informationen finden Sie im SQL Server-Fehlerprotokoll. In der Regel wird ein Assertionsfehler durch einen Softwarefehler oder Datenbeschädigung verursacht. Wenn Sie nach einer Datenbankbeschädigung suchen möchten, sollten Sie DBCC CHECKDB ausführen. Wenn Sie während des Setups zugestimmt haben, Dumps an Microsoft zu senden, wird ein Mini-dump an Microsoft gesendet. Möglicherweise ist ein Update von Microsoft im neuesten Service Pack oder in einem Hotfix vom technischen Support erhältlich.

Msg 596, Stufe 21, Zustand 1, Zeile LineNumber Die Ausführung kann nicht fortgesetzt werden, da sich die Sitzung im Kill-Zustand befindet.

Msg 0, Ebene 20, Zustand 0, Zeile LineNumber

Für den aktuellen Befehl ist ein schwerwiegender Fehler aufgetreten.  Die Ergebnisse, falls vorhanden, sollten verworfen werden.

Ursache

Während der Abfrageoptimierung versucht SQL Server, Kardinalitäten für Zwischenergebnisse verschiedener Phasen der Abfrage zu berechnen, beispielsweise die Verkettung. Da die Sortierungskonflikt Auflösung ganz am Ende erfolgt, ist der Abfrageoptimierer möglicherweise nicht bewusst und versucht, die Berechnung der Verkettungs Kardinalität für eine Eingabe mit einer in Konflikt stehenden Sortierung durchzuführen.

Fehlerbehebung

Dieses Problem wurde in den folgenden kumulativen Updates für SQL Server behoben:

       Kumulatives Update 8 für SQL Server 2016 SP1  

       Kumulatives Update 4 für SQL Server 2017

       Kumulatives Update 9 für SQL Server 2014 SP2

Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:

Neuestes Kumulatives Update für SQL Server 2016

Neuestes Kumulatives Update für SQL Server 2017

Neuestes Kumulatives Update für SQL Server 2014

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Informationsquellen

Erfahren Sie mehr über die Terminologie, mit der Microsoft Softwareupdates beschreibt.

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×