Grundlagen zu Unicode
Das Speichern von Daten in mehreren Sprachen innerhalb einer Datenbank ist schwierig zu verwalten, wenn nur Zeichendaten und Codepages verwendet werden. Es ist außerdem schwierig, eine Codepage für die Datenbank zu finden, die alle erforderlichen sprachenspezifischen Zeichen speichern kann. Weiterhin ist es schwierig, die ordnungsgemäße Übersetzung von Sonderzeichen sicherzustellen, die von Clients gelesen oder aktualisiert werden, die unterschiedliche Codepages ausführen. Datenbanken, die internationale Clients unterstützen, sollten immer Unicode-Datentypen anstelle von Nicht-Unicode-Datentypen verwenden.
Eine Datenbank für Kunden in Nordamerika muss z. B. drei Hauptsprachen verarbeiten:
Spanische Namen und Adressen für Mexiko.
Französische Namen und Adressen für Quebec.
Englische Namen und Adressen für den übrigen Teil Kanadas und die USA.
Wenn Sie nur Zeichenspalten und Codepages verwenden, müssen Sie bei der Installation einer Codepage für die Datenbank sicherstellen, dass diese Codepage die Zeichen der drei Sprachen verarbeiten kann. Weiterhin müssen Sie darauf achten, dass die ordnungsgemäße Übersetzung von Zeichen aus einer der Sprachen sichergestellt ist, wenn sie von Clients gelesen werden, auf denen eine Codepage für eine andere Sprache ausgeführt wird.
Mit der wachsenden Bedeutung des Internets wird die Unterstützung von Clientcomputern, auf denen verschiedene Gebietsschemas ausgeführt werden, wichtiger als je zuvor. Es ist schwierig, eine Codepage für Zeichendatentypen auszuwählen, die alle Zeichen unterstützt, die von einem weltweiten Publikum benötigt werden.
Die einfachste Möglichkeit zum Verwalten von Zeichendaten in internationalen Datenbanken besteht darin, stets die Unicode-Datentypen nchar, nvarchar und nvarchar(max) anstelle der Nicht-Unicode-Äquivalente char, varchar und text zu verwenden.
Unicode ist ein Standard zum Zuordnen von Codepunkten zu Zeichen. Da dieser Standard entwickelt wurde, um alle Zeichen aus allen Sprachen der Welt zu unterstützen, besteht keine Notwendigkeit für unterschiedliche Codepages zur Handhabung der verschiedenen Zeichensätze. SQL Server unterstützt den Unicode Standard der Version 3.2.
Wenn alle Anwendungen, die internationale Datenbanken verwenden, ebenfalls Unicode-Variablen anstelle von Nicht-Unicode-Variablen verwenden, ist innerhalb des Systems keine Zeichenkonvertierung mehr erforderlich. Auf allen Clients werden somit exakt dieselben Zeichen in den Daten angezeigt.
In SQL Server werden alle Systemkatalogdaten in Textform in Spalten gespeichert, die einen der Unicode-Datentypen aufweisen.Die Namen von Datenbankobjekten, z. B. Tabellen, Sichten und gespeicherte Prozeduren, werden in Unicode-Spalten gespeichert. Auf diese Weise ist es möglich, bei der Anwendungsentwicklung ausschließlich Unicode zu verwenden, wodurch mögliche Probleme bei der Konvertierung von Codepages vermieden werden.