Unternehmen, die die Datenbank Vereinfachtes Chinesisch und Traditionelles Chinesisch-Versionen verwenden. Ich benutzte dieses Projektes ist die traditionelle chinesische Version von SQLServer, sondern müssen auf eine andere Verwendung der vereinfachten chinesischen Version des Projekts SQLServer Daten verwenden, habe ich die übliche Praxis der vereinfachte chinesische Version von SQLServer in einer Datentabelle in traditionellem Chinesisch verwendet wird, gefolgt SQLServer Version, die Struktur und die Daten in ein voller Erfolg. Ich erschrak und wußte nicht, wäre dies ein Problem sein. Dann habe ich zum Debuggen von SQL-Anweisungen gestartet ist ein sehr einfaches zwei Tabellen mit Daten Auswahl als assoziierte folgt:
Wählen table1 .*, Tabelle2 .*
von table1
Inner Join Tabelle2 auf table2.FK = table1.PK
Logisch wie eine einfache Erklärung, dass Sinn aus jedem Problem wird, sondern in Query Analyzer fragt die immer folgende Fehlermeldung
Server: Msg 446, Ebene 16, Status 9, Zeile 1
Gleich Maßnahmen nicht beheben können Sortierung Konflikt.
Dann suchen Sie einen Moment und dann auf T-SQL-Hilfe sah, weiß nur, daß, weil ich Vereinfachtes Chinesisch werden die Daten in SQL Server-Tabellen Daten in Traditional Chinese Tabelle, die zusammen mit den Original-Daten, eine Art und Einfuhren, die sich in vereinfachter Form, die Art der Daten ist noch vereinfacht, so kann ich nicht auf einen Fehler zu vergleichen. Die Lösung ist, sortieren nach Name, erzählte, wie Query Analyzer sortiert werden kann. Hier müssen Sie ein Schlüsselwort verwenden COLLATE Coliate in SQLServer Books Online ist, erklärte:
COLLATE
Eine Klausel kann zur Definition einer Datenbank oder einer Spalte Definition angewandt werden, um die Sortierung Regeln oder bei der Zusammenstellung String-Ausdruck verwendet, um die Projektion zu definieren gilt.
Syntax:
COLLATE collation_name
Collation_name :: =
(Windows_collation_name) | (SQL_collation_name)
Parameter
collation_name
Ist in Ausdrücken verwendet, die Definition der Spalte Definition oder Datenbanksortierung Namen. collation_name können nur Windows_collation_name oder SQL_collation_name.
Windows_collation_name
Windows-Sortierung ist die Sortierungsnamens. Sehen Sie sich die Windows Sortierungsnamens.
SQL_collation_name
SQL-Sortierung ist die Sortierungsnamens. Siehe auch: SQL-Sortierung Namen.
Also, wie können wir wissen, der Name der aktuellen Zusammenstellung ist das, was in der Tat den Namen der Zusammenstellung ist, dass wir die Datenbank zu erstellen (zB) können Sie die Zeit wählen können, aber normalerweise werden wir die ursprüngliche standardmäßig nicht gesetzt Es ist eine Veränderung, so dass, wenn die SQLServer Simplified Chinese Simplified Chinese wird die Standard-Sortierung Regeln verwenden, und wenn die SQLServer ist Traditionelles Chinesisch Vereinfachtes Chinesisch wird der Standard-Sortierung verwenden. Wir schauen auf die Datenbank (Instanz) des Anwesens, ist die Registerkarte "Allgemein" unter dem Strich, dass die derzeitige Zusammenstellung. Im Falle des Zahlungsverzuges ist Simplified Chinese Sortierungsnamens: Chinese_PRC_CI_AS und Traditionelle Chinesische Sortierung Name ist: Chinese_Taiwan_Stroke_CI_AS, so haben wir, wenn vereinfacht die Sortierung Name des traditionellen Mix aus Zeit, solange eine Aussage darüber, was Sie verwenden möchten, das aktuelle Art der Sortierung Regeln können im Vergleich zum Beispiel sein, dass für die oben genannten SQL-Anweisung, die zwei folgenden Methoden das Problem zu lösen, dass Fehler
SELECT Tabelle1 .*, Tabelle2 .*
FROM Tabelle1
INNER JOIN Tabelle2 ON Table2.FK = Table1.PK COLLATE Chinese_PRC_CI_AS
SELECT Tabelle1 .*, Tabelle2 .*
FROM Tabelle1
INNER JOIN Tabelle2 ON Table2.FK = Table1.PK COLLATE Chinese_Taiwan_Stroke_CI_AS
Dass für eine lange Zeit, um die Probleme, die durch die Sortierung Konflikt verursacht zu lösen, wenn es daran interessiert sind, nach der die SQL Server-Online auf dem Konzept der Sortier-Regeln aufgestellt waren, um mit Ihnen zu teilen, zu speichern und uns dann gehen Sie zu:
Microsoft? SQL Server? 2000 unterstützt mehrere Sortierungen. Sortieren Regeln für die ordnungsgemäße Verwendung der Sprache (wie mazedonischen oder Polnisch-Steuerung) oder alphabetisch (wie die westeuropäischen Sprachen verwenden das lateinische Alphabet Latin1_General) Zeichencodierung Regeln.
Jede SQL Server Sortierung gibt drei Eigenschaften:
Für Unicode-Datentypen (nchar, nvarchar und ntext) in der Sortierreihenfolge. Sort order definiert Charakter Sortierreihenfolge und Vergleichsoperationen auf Charakter-Werte der Methode.
Für Nicht-Unicode-Zeichen-Datentypen (char, varchar und text) der Sortierreihenfolge.
Werden auch Nicht-Unicode-Zeichendaten von Codepage speichern.
Helfen Sie können nicht angeben, die Unicode-Datentypen (nchar, nvarchar und ntext) den entsprechenden Code-Seite. Für Doppel-Byte-Unicode-Zeichen durch die Unicode-Standard definiert Bitmuster und kann nicht geändert werden.
Kann auf jeder Ebene des SQL Server 2000 Sortierung angegeben werden. Installieren von SQL Server 2000-Instanz, können die Standardsortierung der Instanz. Jedes Mal, wenn Sie die Datenbank zu erstellen, kann der Standardsortierung der Datenbank zugewiesen werden. Wenn Sie nicht angeben, wird die Sortierung der Datenbankinstanz Standardsortierung ist die Standard-Sortierung. Immer, wenn die Definition des Charakters Spalte, Variable oder Parameter können die Zusammenstellung dieser Objekte. Wenn die Sortierung nicht angegeben ist, wird die Standard Datenbanksortierung, diese Objekte zu erstellen.
Wenn der SQL Server-Instanz, dass alle Nutzer die gleiche Sprache verwenden, sollten die Sprache gewählt, um Sortierung zu unterstützen. Zum Beispiel, wenn alle Benutzer Französisch sprechen, wählen Sie "Französisch-Sortierung.
Wenn der SQL Server-Instanz benutzerdefinierten Sprachen sollten auf mehrsprachige Bedürfnissen gewählt werden, um die beste Unterstützung für Sortierung bieten. Zum Beispiel, wenn ein Benutzer im Allgemeinen westeuropäischen Sprachen, wählen Latin1_General Sortierung. Als Unterstützung für mehrsprachige Benutzer wird alle Charakter-Daten unter Verwendung von Unicode-Datentypen nchar, nvarchar und ntext wichtigsten. Unicode soll Nicht-Unicode-Datentypen char, varchar und text-Datentyp Codepagekonvertierung Schwierigkeiten zu beseitigen. Collation für den Vergleich, weil die Definition der Operation Ordnung und Unicode-Zeichen Sortierreihenfolge, so bei der Verwendung von Unicode-Datentypen, um alle Spalten zu erreichen, wird die Sortierung haben unterschiedliche Regeln. Selbst wenn die Verwendung von Unicode-Datentypen Charakter Daten speichern, sollten die meisten Benutzer ausgewählt, um die Sortierung zu unterstützen, um die Verwendung von Nicht-Unicode-Datentyp Spalte oder Variablen zu erreichen, zu verhindern.
Collation SQL Server-Datenbank-Engine zu speichern und zu betreiben die Definition des Charakters und Unicode-Daten. Allerdings, wenn die Daten in der Anwendung verschoben nach Anwendung für das Sortieren und Vergleichen von Zeichen durch den Computer die Kontrolle über Windows regionalen Einstellungen ausgewählt. Anwendung verwendet das Zeichen Datenerfassung aus dem Windows-Regional Settings Kontrolle über eine der Regional-Einstellungen definiert auch andere Projekte, wie Zahlen, Datum, Uhrzeit und Währungsformat. Für Microsoft Windows NT? 4.0, Microsoft Windows? 98 und Microsoft Windows 95, kann das Control Panel "Regionale Einstellungen" Antrag angegebenen regionalen Windows-Einstellungen zu verwenden. Für Microsoft Windows 2000, verwenden Sie die "Systemsteuerung" unter "Regionale Einstellungen" Antrag angegebenen Gebietsschema. Die regionalen Einstellungen für Windows Weitere Informationen finden Sie auf der Website von Microsoft MSDN? Page Developing International Software für Windows 95 und Windows NT 4.0.
Anzahl der Nicht-Unicode-Daten können mit dem gleichen Code-Seite. Zum Beispiel, Code-Seite 1251 definiert kyrillischen Zeichensatz. Mehrere Sortier Regeln (wie Cyrillic_General, Ukrainisch und Mazedonisch) Verwendung der Codepage. Obwohl diese Regeln die gleiche Art von Bits gesetzt, um die Nicht-Unicode-Zeichendaten darstellen sollen, aber im Umgang mit einem Wörterbuch Definition der Sortierung und Vergleiche Regeln etwas anders, und Wörterbuch-Definitionen für die Sprache oder alphabetisch sortieren nach Regeln mit den richtigen Zeichen zugeordnet bestimmen Sequenz.
Da SQL Server 2000 Unicode-Steuerung und Nicht-Unicode-Sortierreihenfolge, es wird also keine Begegnung mit dem Nicht-Unicode-Daten in Unicode, und geben Sie eine andere Sortierung hat das Problem verursacht. In früheren Versionen von SQL Server auf der Codepage-Nummer, die Sortierreihenfolge und die Unicode-Zeichen getrennt Sortierung angegeben. Frühere Versionen von SQL Server unterstützt auch eine unterschiedliche Anzahl für jede Codepage Sortierreihenfolge, und um gewisse Codepages in Windows regionalen Einstellungen nicht die Art Ordnung zu sorgen. In SQL Server 7.0 können Sie auch die Selektion der Daten für Nicht-Unicode-Sortierreihenfolge andere als die Unicode-Sortierung. Dies wird in der Nutzung und Nicht-Unicode-Daten relative Unicode-Daten-, Sortier-und Vergleichsoperationen Ergebnis zurückgeben zu unterschiedlichen Ergebnissen.