8
4

2 回答 2

20

要使其工作,请在字符串前面加上N

create table symboltable 
(
  val nvarchar(10)
)

insert into symboltable values(N'≥') 

select *
from symboltable 

在此处输入图像描述

延伸阅读

于 2012-08-19T17:50:51.200 回答
2

要添加到 gonzalo 的答案,字符串文字字段都需要支持 unicode characters

字符串字面量

Per Marc Gravell 关于N' 在 SQL 脚本中代表什么的回答?

'abcd'[var]char字符串的文字,占用 4 字节内存,并使用SQL 服务器配置的任何代码页
N'abcd'是字符串的文字,占用8字节内存,使用UTF-16。n[var]char

其中N前缀代表 SQL-92 标准中的“国家”语言,用于表示 unicode 字符。例如,在以下代码中,基本字符串文字中的任何 unicode 字符首先被编码到 SQL Server 的“代码页”中:

<code>SELECT '≤'  AS ['≤'], N'≤'  AS [N'≤']</code>

旁白:您可以使用以下 SQL 检查您的代码页:

SELECT DATABASEPROPERTYEX('dbName', 'Collation') AS dbCollation;
SELECT COLLATIONPROPERTY( 'SQL_Latin1_General_CP1_CI_AS' , 'CodePage' ) AS [CodePage];

默认为Windows-1252,仅包含这 256 个字符

字段类型

一旦值能够被传递,它们还需要能够存储支持 unicode 类型的列中,例如:

  • nchar
  • nvarchar
  • ntext

延伸阅读

于 2018-08-15T00:35:18.537 回答