【发布时间】:2017-01-23 11:44:35
【问题描述】:
我有一个名为 [catcot] 的表,它有一个“名称”列和一个“xml”列。
'name' 是一个 varchar,'xml' 是 XML 类型
目前“xml”列包含
<Cat>
<Temp>.html</Temp>
</Cat>
我需要在“.html”之前的“名称”列中插入值
这可能吗?我尝试了一般更新,但它似乎不接受 XML 内容。
这是我尝试的更新:
UPDATE [db].[catcot]
SET xml = '<Cat><Temp>' + name + '.html</Temp></Cat>'
WHERE id = 24
导致
XML parsing: line 1, character 67, illegal name character
【问题讨论】:
-
可以发布你的更新语句吗?
-
@Matt 问题的原因XML 解析:第 1 行,字符 67,非法名称字符很可能绑定到
name中的非法字符。这就是为什么您不应该在字符串级别构建 XML。试想像Matt & Friends这样的名称或包含特殊/外来字符的名称。连接的字符串将类似于<Cat><Temp>Matt & Friends</Temp></Cat>,这是不允许的... -
@Matt - 你想追加
name还是完全替换<Temp>节点值?
标签: sql sql-server xml insert sql-update