在SQL Server数据库中插入特殊字符(大于/小于或等于符号)

时间:2012-08-19 17:42:08

标签: sql-server unicode nvarchar

我正在尝试将插入到列为nvarchar类型的符号表中。

这是可能的还是SQL Server中不允许使用这些符号?

2 个答案:

答案 0 :(得分:14)

要使其有效,会在字符串前加上N

create table symboltable 
(
  val nvarchar(10)
)

insert into symboltable values(N'≥') 

select *
from symboltable 

enter image description here

进一步阅读

答案 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的“代码页”中:

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

  

在旁边:您可以使用以下SQL check your code page:     

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

默认值为Windows-1252,只有contains these 256 characters

字段类型

一旦值能够被传递,它们还必须能够被存储column that supports unicode types中,例如:

  • nchar
  • nvarchar
  • ntext

进一步阅读