2015-09-21 43 views
7

Ich habe einen einfachen Einsatz, aber mit griechischen Zeichen einfügenWie griechische Zeichen in SQLServer Tabelle

INSERT INTO tmp (fname) VALUES ('ΚΩΝΣΤΑΝΤΙΝΟΣ') 

habe ich versucht, die Tabelle auf zwei Arten erstellen:

create table tmp (fname varchar(40)) 

und

create table tmp (fname nvarchar(40)) 

Wenn ich dann die Daten auswählen:

select * from tmp 

ich:

?O?S???????S 

Ich verwende:

Microsoft SQL Server 2005 - 9.00.4060.00 (Intel X86) 
    Mar 17 2011 13:20:38 
    Copyright (c) 1988-2005 Microsoft Corporation 
    Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2) 

und

Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64) 
    Oct 19 2012 13:38:57 
    Copyright (c) Microsoft Corporation 
    Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) 

es macht das gleiche in beiden.

Ich verwende:

Microsoft SQL Server Management Studio 11.0.2100.60 

die Tabelle zu erstellen und die Daten einfügen usw.

Wie kann ich griechische Zeichen erhalten korrekt zu speichern oder, wenn sie gespeichert sind richtig richtig angezeigt wird, wenn ich wähle sie aus?

Antwort

12

Try Präfix Unicode Zeichenfolge verwenden:

create table tmp (fname nvarchar(40)) 
INSERT INTO tmp (fname) VALUES (N'ΚΩΝΣΤΑΝΤΙΝΟΣ') 

auch mit Sortierung der Spalten ein Problem sein, es kann so eingestellt

create table tmp (fname nvarchar(40) COLLATE SQL_Latin1_General_CP1253_CI_AI) 

Von MSDN bitte:

Präfix Unicode-Zeichenkettenkonstanten mit dem Buchstaben N. Ohne das N-Präfix, das Die Zeichenfolge wird in die Standardcodepage der -Datenbank konvertiert. Diese Standard-Codepage erkennt möglicherweise bestimmte Zeichen nicht.

+1

Natürlich - duh! - Vielen Dank – Graham

+1

Vorsicht vor SQL-Kollationen: sind hauptsächlich für die Rückwärtskompatibilität. siehe [Dokumente] (https://support.microsoft.com/en-us/kb/322112) – Paolo

Verwandte Themen