SQL Server 2012未在结果

时间:2016-10-05 19:03:11

标签: sql unicode sql-server-2012

我想要做的就是将带有DIRECT CURRENT SYMBOL FORM TWO 字符的字段更新到我的SQL Server 2012数据库中。那是过分的要求?显然是。

this questionthis question 的答案是相同的,对我来说无效。

我的更新脚本<​​/ p>

UPDATE Table 
SET Value = N'SUPPLY 9-30Vdc 0.2W ⎓' 
WHERE id = '1234'

Aaaa和相关的表架构:

CREATE TABLE [dbo].[Table]
(
    ...
    ... 
    [Value] [nvarchar] (1000) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    ...
    ...
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

想了解更多?这是sp_columns

的结果

enter image description here

是的,我在字符串上添加了N&#39;&#39;。那应该有用,对吗?不。

截图:

enter image description here

注意unicode字符所在的小方框。为什么呢?

4 个答案:

答案 0 :(得分:5)

根据您的问题的评论讨论,您的SQL代码是正确的并且正在更新unicode字符,但SQL Server Management Studio不能(由于某种原因)在GRID结果集中显示此unicode字符。 如果将结果视图更改为TEXT(control + T),则应该看到unicode字符。

&#34;如果您使用SSMS进行查询,请从&#34; Grid&#34;更改为输出类型。到&#34;文字&#34;,因为根据字体,网格无法显示unicode。&#34;

答案 1 :(得分:0)

您可以尝试:

UPDATE Table SET Value = 'N' + char(39) + 'SUPPLY 9-30Vdc 0.2W ⎓' WHERE id = '1234'

也许:

SET QUOTED_IDENTIFIER OFF;

UPDATE Table SET Value = REPLACE(Value, "N'SUPPLY ", "SUPPLY") WHERE id = '1234'

SET QUOTED_IDENTIFIER ON;

我希望这会有所帮助......

祝你好运!

答案 2 :(得分:0)

感谢@Aron,我遇到了下一个问题:

在SSMS中,当我从网格结果(数据库A中的表A)中复制Sighișoara之类的文本并粘贴到插入查询(数据库B中的表B)中时,此插入的结果为{{ 1}},带有询问字符。

在SSMS中对我有帮助的步骤:

  1. 工具->选项->环境->字体和颜色。在Sighi?oara中选择选项Show settings for,并为此选项使用Unicode字体。
  2. 请确保您的表中的列包含Grid Results,而不是nvarchar(X)
  3. 请确保在插入数据时,在字符串前加varchar(X),如下所示:

    N character

(对于SSMS 17.9.1)

答案 3 :(得分:-1)

没有名为“value”的列。 这有用吗?

UPDATE Table SET COLUMN_NAME = N'SUPPLY 9-30Vdc 0.2W ⎓' WHERE id = '1234'