2015-09-21 20 views
7

Mam proste wstawianie, ale greckich znakówJak wstawić greckie znaki w tabeli sqlserver

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

Próbowałem tworzenia tabeli na dwa sposoby:

create table tmp (fname varchar(40)) 

i

create table tmp (fname nvarchar(40)) 

Po wybraniu danych:

select * from tmp 

uzyskać:

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

Używam:

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) 

i

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) 

robi to samo w obu.

Używam:

Microsoft SQL Server Management Studio 11.0.2100.60 

aby utworzyć tabelę i wstawić dane itd

Jak mogę dostać się do przechowywania znaków greckich prawidłowo lub jeśli są one przechowywane prawidłowo wyświetlać poprawnie kiedy wybrać je?

Odpowiedz

12

spróbuje użyć prefiksu Unicode ciąg znaków:

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

również może być problem z sortowania kolumn, należy ustawić

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

Od MSDN:

prefiks Stałe ciągi znaków Unicode z literą N. Bez przedrostka N, ciąg jest konwertowany na domyślną stronę kodową bazy danych . Ta domyślna strona kodowa może nie rozpoznawać określonych znaków.

+1

Oczywiście - duh! - Dziękujemy – Graham

+1

uwaga na zbieranie danych SQL: głównie ze względu na kompatybilność wsteczną. zobacz [dokumenty] (https://support.microsoft.com/en-us/kb/322112) – Paolo

Powiązane problemy