我在同一列中有两个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 "
有什么建议吗?
答案 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)'