我有一个简单的插入,但有希腊字符
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
创建表并插入数据等。
我如何正确存储希腊字符,或者如果它们被正确存储以便在我选择它们时正确显示?
答案 0 :(得分:15)
尝试使用前缀Unicode字符串:
create table tmp (fname nvarchar(40))
INSERT INTO tmp (fname) VALUES (N'ΚΩΝΣΤΑΝΤΙΝΟΣ')
列的整理也可能存在问题,请设置
create table tmp (fname nvarchar(40) COLLATE SQL_Latin1_General_CP1253_CI_AI)
来自MSDN:
使用字母N前缀Unicode字符串常量。无 N前缀,该字符串被转换为默认代码页 数据库。此默认代码页可能无法识别某些字符。