我正在尝试将≤
和≥
插入到列为nvarchar
类型的符号表中。
这是可能的还是SQL Server中不允许使用这些符号?
答案 0 :(得分:14)
要使其有效,会在字符串前加上N
create table symboltable
(
val nvarchar(10)
)
insert into symboltable values(N'≥')
select *
from symboltable
进一步阅读:
答案 1 :(得分:1)
要添加到贡萨洛的答案中,字符串文字和字段都需要支持Unicode字符。
在What does N' stands for in a SQL script ?上Per Marc Gravell的回答:
'abcd'
是[var]char
字符串的文字,占用4个字节的内存,并且使用为SQL Server配置的任何代码页。
N'abcd'
是n[var]char
字符串的文字,它占用8个字节的内存,并使用UTF-16。
其中的N
前缀代表SQL-92标准中的“ National ”语言,用于表示Unicode字符。例如,在以下代码中,基本字符串文字中的所有unicode字符都首先被编码到SQL Server的“代码页”中:
在旁边:您可以使用以下SQL check your code page:
SELECT DATABASEPROPERTYEX('dbName', 'Collation') AS dbCollation; SELECT COLLATIONPROPERTY( 'SQL_Latin1_General_CP1_CI_AS' , 'CodePage' ) AS [CodePage];
一旦值能够被传递,它们还必须能够被存储到column that supports unicode types中,例如:>
nchar
nvarchar
ntext
进一步阅读: