2015-09-21 3 views
7

をギリシャ文字を挿入するために、私は、単純な挿入を持っていますが、ギリシャ文字方法SQLServerのテーブルに

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

と私は二つの方法でテーブルを作成しようとした:

create table tmp (fname varchar(40)) 

create table tmp (fname nvarchar(40)) 

データを選択すると:

select * from tmp 

は私が取得:私が使用している

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

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) 

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) 

それは両方で同じこと。

私が使用している:

Microsoft SQL Server Management Studio 11.0.2100.60 

をテーブルを作成し、データを挿入するなど

を私が正しく保存するためにギリシャ文字を取得するか、またはそれらがとき、私正しく表示するように正しく保存されている場合にどのようにそれらを選択しますか?

答えて

12

接頭Unicode文字列を使用してみてください。また、列の照合に問題がある可能性があり

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

MSDNから

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

を設定してください。

プレフィックス文字NのUnicode文字列定数。 なし、N接頭辞、文字列は データベースのデフォルトのコードページに変換されます。この既定のコードページは、特定の文字を認識しないことがあります。

+1

もちろん - duh! - ありがとうございます – Graham

+1

SQL照合の注意:主に下位互換性のためです。 [docs](https://support.microsoft.com/en-us/kb/322112)を参照してください。 – Paolo

関連する問題