Share via


Nur-Unicode-Sortierungen

Die Unicode-Spezifikation definiert ein Codierschema für die meisten weltweit in Unternehmen verwendeten Zeichen. Sämtliche Computer übersetzen mithilfe der Unicode-Spezifikation die Bitmuster in Unicode-Daten einheitlich in Zeichen. Dies stellt sicher, dass das gleiche Bitmuster auf allen Computern immer in das gleiche Zeichen konvertiert wird. Daten können von einer Datenbank oder einem Computer frei auf eine andere bzw. einen anderen übertragen werden, ohne dass darauf geachtet werden muss, ob das Empfängersystem Fehler beim Übersetzen des Bitmusters in Zeichen macht.

Unicode verwendet 2 Byte, um jedes Zeichen zu codieren. Es gibt genügend verschiedene Muster (65.536) in 2 Byte für eine Spezifikation, die die gebräuchlichsten Geschäftssprachen abdeckt. Sie können Probleme mit der Zeichenkonvertierung durch Verwenden von Unicode-Datentypen innerhalb des Systems minimieren.

Verwenden von COLLATE

Nur-Unicode-Sortierungen von Windows, die für Nur-Unicode-Daten angegeben sind, wie z. B. nchar, nvarchar und nvarchar(max), verfügen nicht über zugeordnete Codepages.

In SQL Server unterstützen die folgenden Datentypen Unicode-Daten:

  • nchar

  • nvarchar

  • ntext

Nur-Unicode-Sortierungen können mit der COLLATE-Klausel verwendet werden, um Sortierungen auf die Datentypen nchar, nvarchar und ntext bei Daten auf Spalten- und Ausdrucksebene anzuwenden. Nur-Unicode-Sortierungen können nicht zusammen mit der COLLATE-Klausel verwendet werden, um die Sortierung einer Datenbank oder Serverinstanz zu ändern.

Nur-Unicode-Sortierungen können die Verwaltung von Daten zwischen einer Serverinstallation und den Clientdatenbankanwendungen vereinfachen. Auf früheren Betriebssystemen sind häufig ältere Clientanwendungen installiert. Diese Clientanwendungen sind ggf. nicht in der Lage, eine neuere Windows-Sortierung zu erkennen, die auf eine SQL Server-Datenbank oder einen Server unter einem neueren Betriebssystem angewendet wurde. Wenn eine Nur-Unicode-Sortierung auf bestimmte Daten auf Spalten- oder Ausdrucksebene auf dem Server angewendet wurde, wird der Client nicht versuchen, die empfangenen Daten einer falschen Codepage zuzuordnen. Die Zeichenintegrität der auf den Client importierten Daten bleibt also erhalten.