如何将希腊字符插入sqlserver表

Gra*_*ham 11 sql-server

我有一个简单的插入,但有希腊字符

INSERT INTO tmp (fname) VALUES ('????????????')
Run Code Online (Sandbox Code Playgroud)

我尝试过以两种方式创建表:

create table tmp (fname varchar(40))
Run Code Online (Sandbox Code Playgroud)

create table tmp (fname nvarchar(40))
Run Code Online (Sandbox Code Playgroud)

当我然后选择数据时:

select * from tmp
Run Code Online (Sandbox Code Playgroud)

我明白了:

?O?S???????S
Run Code Online (Sandbox Code Playgroud)

我正在使用:

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)
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)

两者都是一样的.

我正在使用:

Microsoft SQL Server Management Studio  11.0.2100.60
Run Code Online (Sandbox Code Playgroud)

创建表并插入数据等

如何正确存储希腊字符,或者如果它们被正确存储以便在我选择它们时正确显示?

Rom*_*syk 16

尝试使用前缀Unicode字符串:

create table tmp (fname nvarchar(40))
INSERT INTO tmp (fname) VALUES (N'????????????')
Run Code Online (Sandbox Code Playgroud)

也可能是列的整理问题,请设置

create table tmp (fname nvarchar(40) COLLATE SQL_Latin1_General_CP1253_CI_AI)
Run Code Online (Sandbox Code Playgroud)

来自MSDN:

前缀Unicode字符串常量,字母为N.如果没有N前缀,则将字符串转换为数据库的默认代码页.此默认代码页可能无法识别某些字符.