Das Buch, das ich gerade lese, sagt das
SQL Server unterstützt zwei Arten von Zeichendatentypen - regulär und Unicode. Zu den regulären Datentypen gehören CHAR und VARCHAR, zu den Unicode-Datentypen gehören NCHAR und NVARCHAR. Der Unterschied besteht darin, dass reguläre Zeichen für jedes Zeichen ein Byte Speicher belegen, während Unicode-Zeichen zwei Byte pro Zeichen benötigen. Bei einem Byte Speicher pro Zeichen beschränkt eine Auswahl eines regulären Zeichentyps für eine Spalte Sie zusätzlich zu Englisch auf nur eine Sprache, da nur 256 (2 ^ 8) verschiedene Zeichen durch ein einzelnes Byte dargestellt werden können.
Was ich dadurch erfahren habe, ist, wenn ich Varchar verwende, kann ich nur eine Sprache (zB Hindi, eine indische Sprache) zusammen mit Englisch verwenden.
Aber wenn ich das führe
Es zeigt mir Fehler "Sortierung" Indic_General_90_CI_AS_KS 'wird nur für Unicode-Datentypen unterstützt und kann nicht auf Char-, Varchar- oder Textdatentypen angewendet werden. "
Also, wo habe ich den Autor falsch verstanden? Danke
Sie finden hier eine Liste der Sortierungen hier . zusammen mit dem Codierungstyp
Bestimmte Sortierungen gelten nur für 1-Byte-Codierungen - 127 Bits werden für normales ASCII und 128 für andere Zeichen verwendet - hindi passt wahrscheinlich nicht in 128 Zeichen, so dass eine 1-Byte-Sortierung nicht darauf zutrifft .
Sie müssen einen nvarchar (oder einen anderen 'n' vorangestellten Zeichentyp) verwenden.
- bearbeiten -
French_CI_AS als nicht-englisches Beispiel
Eine der Funktionen, die Kollatierungen aktivieren, ist die sprach- und länderspezifische Anordnung von Zeichen. Daher Französisch! = Latein.
Ein anderes Beispiel Arabic_CI_AS
Dies ist eine 1-Byte-Kodierung mit dem arabischen Alphabet.
Verwenden Sie dies in Ihrer SQL-Anweisung, wobei "Inhalt" eine Variable ist, die die arabische Zeichenfolge enthält, die Sie einfügen möchten:
%Vor%Es funktioniert gut.
Tags und Links sql sql-server collation