更新XML在SQL服务器
问题描述:
我在一个SQL Server表中的XML列有一个XML结构鉴定值如下:更新XML在SQL服务器
<Customizations>
<Customization name="OtherValue">
<value>Test</value>
</Customization>
. . . .
<Customization name="Year">
<value>2009</value>
</Customization>
</Customizations>
,我期待更新定制与价值具有属性Year的元素。一直在寻找这一段时间,最好的尝试是:
UPDATE TestTable
SET XmlColumn.modify(
'
replace value of (/Customizations/Customization/@name[.="Year"]/value)[1]
with ("2010")
')
有人能帮助指出我要去哪里错了吗?
答
您需要使用一个稍微不同的XPath表达式:
UPDATE TestTable
SET
XmlColumn.modify('replace value of (/Customizations/Customization[@name="Year"]/value/text())[1] with "2010"')
WHERE .......
具体而言,您需要指定/value/text()
使得<value>
节点的内部文本被替换。
正是我在找的东西。非常感谢你。 – Tadhg 2010-06-17 09:06:21