Freigeben über


Ergänzende Zeichen

Die Datentypen nchar und nvarchar speichern jedes Zeichen als 16-Bit-Wert in einer Codierung mit dem Namen UCS-2. Diese vor 1996 von Versionen von Unicode definierte Codierung unterstützt Zeichen im Bereich U+0000 bis U+FFFF. In neueren Versionen von Unicode sind zusätzliche Zeichen im Bereich U+10000 bis U+10FFFF definiert. Sie werden ergänzende Zeichen genannt. Diese Zeichen werden als Paare von 16-Bit-Werten, Ersatzzeichen in einer Codierung UTF-16 gespeichert. Alle neuen _100-Ebenen-Sortierungen unterstützen die linguistische Sortierung mit ergänzenden Zeichen. 

Wenn Sie ergänzende Zeichen verwenden, sollten Sie folgende Einschränkungen berücksichtigen:

  • Ergänzende Zeichen können bei Sortier- und Vergleichsvorgängen nur für Sortierungsversionen von SQL Server 90 oder höher verwendet werden.

  • Da ergänzende Zeichen als Paare zweier 16-Bit-Zeichen gespeichert werden, gibt die LEN()-Funktion für jedes ergänzende Zeichen, das in der Argumentzeichenfolge enthalten ist, den Wert 2 zurück. In ähnlicher Weise stellen die Funktionen CHARINDEX und PATINDEX auftretende ergänzende Zeichen innerhalb von Zeichenfolgen falsch dar.

  • Die Funktionen LEFT, RIGHT, SUBSTRING, STUFF und REVERSE teilen möglicherweise Ersatzpaare und führen zu unerwarteten Ergebnissen.

  • Ergänzende Zeichen werden für die Verwendung mit Platzhalterzeichen, wie Unterstrich (_), Prozent (%) und Caretzeichen (^), nicht unterstützt.

  • Ergänzende Zeichen werden für die Verwendung in Metadaten, beispielsweise in Namen von Datenbankobjekten, nicht unterstützt.

Ein Transact-SQL-Skript zu diesem Szenario finden Sie im Beispiel Supplementary-Aware String Manipulation. Weitere Informationen zu Beispielen finden Sie unter Überlegungen zum Installieren der SQL Server-Beispiele und -Beispieldatenbanken.