sql Server 2012 Express verstehe russische Buchstaben nicht

7

Ich habe DB, die mit russischem Text arbeitet, aber wenn ich Abfragen ausführen zeigt es mir dies. Die Datenbank wird von den Russen benutzt und sie muss den russischen Text richtig zeigen!

Irgendwelche Ideen, wie man es beheben kann? In Zukunft wird es sich in Russland befinden und mit der russischen Version SQL Server arbeiten, aber gerade arbeite ich an der englischen Version SQL 2012 Express.

Hier ist die Tabelle und die Anweisung einfügen:

%Vor%     
Andrey 20.08.2013, 01:38
quelle

2 Antworten

16

Sind Sie sicher, dass die Daten korrekt in der Datenbank gespeichert wurden? Woher weißt du das?

Stellen Sie sicher, dass die Spalte eine richtige Sortierung aufweist, dass sie als nvarchar definiert ist und dass den Einfügungen von Zeichenfolgenliteralen das Präfix N vorangestellt ist. Zum Beispiel sind diese nicht identisch:

%Vor%

Als ein Beispiel:

%Vor%

Ergebnisse:

%Vor%

Um zu zeigen, wie sich dies auf Ihre insert-Anweisung auswirkt, fehlt in Ihrer Zeichenfolge das Präfix N :

%Vor%

Ergebnisse:

%Vor%

Also, setzen Sie Ihre Unicode-Zeichenfolgen mit N'a prefix' voran oder verlieren Sie Daten.

    
Aaron Bertrand 20.08.2013, 01:43
quelle
2

Während Aaron Bertrand eine gute Erklärung gab, warum Sie so ein Ergebnis bekommen, würde ich sagen, dass es einen Weg gibt, nicht alle Zeichenfolgen mit russischen Buchstaben mit 'N' voranzutreiben.
Soweit ich weiß, haben Sie Ihre Server-Sortierung gerade richtig eingestellt. Wenn Sie beispielsweise die Sortierung wie Cyrillic_General_CI_AS festlegen, könnte der Server Varchar mit russischen Buchstaben richtig behandeln:

%Vor%

Ergebnisse:

%Vor%

Wie Sie sehen, werden spanische und chinesische Saiten nicht korrekt behandelt, während russische Saiten sind. So können Sie Daten in nvarchar-Spalten einfügen, ohne Strings mit 'N'

voranzutreiben

Das heißt, ich benutze Nvarchar-Datentyp in unserer Datenbank als Standard-Strings, Nvarchar-Parameter in gespeicherten Prozeduren. Ich verwende sehr selten russische Zeichenfolgen im Code (nur wenn ich etwas testen möchte), und ich habe nie N'string' Syntax verwendet.

Obwohl die korrekte Standardsortierung hilfreich sein kann, gibt es ein Problem mit dieser Lösung. Es ist nicht einfach, den Standard zu ändern. Sortierung bei installiertem SQL Server , daher müssen Sie beim Installieren der SQL Server-Instanz vorsichtig sein und die Sortierung richtig auswählen.

    
Roman Pekar 20.08.2013 05:41
quelle

Tags und Links