在SQL Server表中存储一些特殊字符

时间:2018-03-30 06:30:47

标签: sql sql-server sql-server-2008-r2

我有以下查询:

update Qtable 
set Q1 = ' If the alternative 
            hypothesis is as  Ha : µ ≠µ0   ;
where QID = '856'

Q1的数据类型为nvarchar(max)

现在我在数据库中更新并看到而不是Ha : µ ≠µ0,我得到了

Ha : µ ?µ0 

不确定更新语句为何替换≠with?我理解它是一个特殊字符,但应该应用哪些设置来保存值?

2 个答案:

答案 0 :(得分:3)

您需要确保使用N前缀为Unicode字符串文字添加前缀。 像这样:

 update Qtable set Q1=' If the alternative 
 hypothesis is as  Ha :'+ N'µ ≠µ0'   ;
    where QID='856'

QUERY 1:(旧查询'字符串)

SELECT 'If the alternative 
 hypothesis is as  Ha:µ ≠µ0';

<强>输出:

If the alternative hypothesis is as Ha:µ ?µ0

QUERY 2:(新查询&#39;字符串)

 SELECT 'If the alternative 
 hypothesis is as  Ha:' + N'µ ≠µ0';

<强>输出:

If the alternative hypothesis is as Ha:µ ≠µ0

FOR DEMO检查此链接:

http://sqlfiddle.com/#!18/adfb7/1

如果您没有使用NVARCHAR,那么您将not equal character替换为其他角色。

  

Nvarchar存储UNICODE数据。如果您有要求存储   UNICODE或多语言数据,nvarchar是选择。 Varchar商店   ASCII数据,应该是您正常使用的数据类型。

答案 1 :(得分:1)

使用此声明:

update Qtable 
set Q1 = N'If the alternative hypothesis is as  Ha : µ ≠µ0' 
where QID = '856'