sql server是" value"等于"值"

时间:2017-01-04 22:36:56

标签: sql-server blank-line

我在同一列中有两个Tag值。

value1 = "(Massachusetts)"
value2 = "(Massachusetts)" + CHAR(10)

我想将新行版本转换为"value "(带空格)但我收到主键重复错误。

  

"违反PRIMARY KEY约束' Contact.Tag'。无法在对象' dbo.Contact.Tag'中插入重复键。重复键值为(id_num_removed,id_num_removed,(Massachusetts))。   声明已经终止"

这是我正在运行的声明。

update [Contact.tag]
SET TAG_NAME = '(Massachusetts) '
where
    instance_id = 97986
    and contact_id = 93941676
    and TAG_NAME = '(Massachusetts)' + CHAR(10);

我尝试过使用替换版本并获得相同的错误。

UPDATE [blah].[dbo].[Contact.Tag]
SET TAG_NAME = REPLACE(TAG_NAME, CHAR(10), ' ')
where TAG_NAME LIKE '%' + CHAR(10) + '%'

似乎SQL服务器认为"value" = "value "

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

Sql server不会考虑尾随空格。如果你想复制它,你最好在空格字符前加上前缀而不是后缀。

update [Contact.tag] SET TAG_NAME = '(Massachusetts) ' where instance_id = 97986 and contact_id = 93941676 and TAG_NAME =Char(10)+ '(Massachusetts)'