问问题
21753 次
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 的“代码页”中:
旁白:您可以使用以下 SQL 检查您的代码页:
SELECT DATABASEPROPERTYEX('dbName', 'Collation') AS dbCollation; SELECT COLLATIONPROPERTY( 'SQL_Latin1_General_CP1_CI_AS' , 'CodePage' ) AS [CodePage];
字段类型
一旦值能够被传递,它们还需要能够存储到支持 unicode 类型的列中,例如:
nchar
nvarchar
ntext
延伸阅读:
于 2018-08-15T00:35:18.537 回答