SELECTIERE COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage') Hier sind die Abfrageergebnisse:
936 vereinfachte Chinesische GBK 950 Chinesische Traditionelle BIG5 437 US/Kanadisches Englisch 932 Japaner 949 Koreanisch 866 Russisch 65001 Unicode UFT-8
Bei der Installation von SQL SERVER 2008 haben wir, weil wir die Standardinstallation gewählt haben, sie erstelltBei der Datenbank ist die vom Server gewählte Standardsortierregel eine SQL_Latin1_General_CP1_CI_AS Sortierungsregel, sodass beim Einfügen von Text in die Datentabelle dieser nicht normal angezeigt wird, sondern mit "? stattdessen.
Wenn wir dann eine Datenbank erstellen, müssen wir manuell eine Kollierungsregel angeben, die als Chinese_PRC_CI_AS Kollierung ausgewählt werden kann, wie in der untenstehenden Abbildung gezeigt.
Sortierregeln:
Die in SQLSEVER2005 verwendeten Sortierregeln sind SQL_Latin1_General_CP1_CI_AS, nicht die drei Sortierregeln, die vereinfachte chinesische Zeichen korrekt darstellen können:
Chinese_PRC_BIN,
Chinese_PRC_CI_AS,
Chinese_PRC_CS_AS。
Werfen Sie einen Blick auf MS' Erklärung zur Kollation: Collation Rules Control Physical Storage of Strings in SQL Server 2005. Kollektionsregeln geben das Bitmuster an, das jedes Zeichen repräsentiert, sowie die Regeln zum Speichern und Vergleich der Zeichennutzung.
Das heißt, in SQLSERVER ist die Sortierung tatsächlich die Zeichenkodierung.
Indem Sie die folgende Anweisung im Abfrageanalysator ausführen, können Sie alle von SQL SERVER unterstützten Kollierungsregeln erhalten.
Wählen Sie * aus ::fn_helpcollations()
Der Name der Kollation besteht aus zwei Teilen, wobei der erste Teil den von dieser Kollation unterstützten Zeichensatz bezieht.
Zum Beispiel: Chinese_PRC_CS_AI_WS
Die erste Hälfte bezieht sich auf den UNICODE-Zeichensatz und Chinese_PRC_refers auf die Sortierregeln für das vereinfachte chinesische Zeichen UNICODE.
Die zweite Hälfte der Kollation ist die Bedeutung des Suffixes:
_BIN Binärsortierung
_CI(CS) Ob es case-sensitiv ist, CI ist nicht sensitiv und CS ist sensibel
_AI (AS) Ob zwischen Akzenten unterschieden soll, unterscheidet KI nicht, AS unterscheidet
_KI(KS) Ob man zwischen Pseudonymtypen unterscheiden soll, KI nicht, KS unterscheidet
_WI(WS) ist nicht breitenunterscheidet, WS ist nicht differenziert
Groß- und Kleinschreibung: Wähle diese Option, wenn du Vergleiche möchtest, um Groß- und Kleinbuchstaben als ungleich zu behandeln.
Unterscheide zwischen Akzenten: Wähle diese Option, wenn du Vergleiche möchtest, um akzentuierte und ungestrissene Buchstaben als ungleich zu behandeln. Wenn du diese Option wählst, behandelt der Vergleich auch Buchstaben mit unterschiedlichen Akzenten als ungleich.
Unterscheide Kana: Wähle diese Option, wenn du möchtest, dass der Vergleich die Silben von Katakana und Hiraka Day als ungleich behandelt wird.
Breitendifferenzierung: Wähle diese Option, wenn du möchtest, dass der Vergleich halbe und volle Breite als ungleich behandelt wird.
Nach Verständnis der Kollierungsregeln in SQLSERVER können folgende Schlussfolgerungen für das obige Problem gezogen werden:
1. Die SQLSERVER-Benutzerdatenbank so modifizieren, dass sie die Sortierung chinesischer Zeichensätze unterstützt.
2: Für die Darstellung chinesischer Zeichen??, aber die Sortierregeln in der Datenbank nicht ändern und chinesische Zeichen korrekt darstellen möchten, wird empfohlen, alle Unicode-Typfelder im Design zu verwenden, also jene Feldtypen, die mit N beginnen, wie nChar, nVarchar, um chinesische Zeichen korrekt darzustellen.
3: Wenn du die Sortierregel oder den Feldtyp nicht ändern möchtest, musst du die SQL-Anweisung ändern, und für alle chinesischen Zeichen musst du auch N davor hinzufügen, um sie korrekt darzustellen. Bitte beachten Sie die folgenden beiden Aussagen für spezifische Methoden:
Abfrage: Wählen Sie * aus tb_Cust aus, wo FirstName=N'Wang'
Einfügen: Einfügen tb_Cust(Vorname, Nachname, Geschlecht) Werte (N'Wang', N'Xinhao', N'Male')
Hinweis: Für die Zukunft wird es umständlicher sein, die Server-Level-Kollationsregel nach SQLSERVER2000 zu ändern, und es ist notwendig, die Master-Datenbank neu aufzubauen.
Derzeit können wir für bereits erstellte Datenbanken auch die Sortiermethode auf der Optionsseite im Eigenschaftenfenster der Datenbank ändern, sodass beim Einfügen von Text in die Datentabelle keine Fehlermeldungen angezeigt werden!
|