【发布时间】:2014-03-23 06:41:03
【问题描述】:
我有一个 SQL Server 数据库表,如下所示:-
Id (int) Info(xml)
------------------------
1 <xml....
2 <xml ...
3 <xml ...
Info 字段中每条记录中的 XML 类似于:-
<CodesParameter xmlns="http://mynamespace.com/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Data Code="A1" HasMoreData="true">
.
.
</Data>
</CodesParameter>
我希望能够更改 XML 中 <Data Code="..."> 的值,并尝试了以下查询:-
UPDATE MyTable
SET Info.modify('replace value of (Data[1]/@Code)with ("B1")')
WHERE Id = 2
Go
返回的消息表示查询执行成功,但值没有变化。
我尝试过声明命名空间:-
UPDATE MyTable
SET Info.modify('declare namespace myns="http://mynamespace.com/";
replace value of (/myns:WebTableParameter[1]/myns:DataTable[1]/@Code)with ("B1")')
WHERE Id = 2
Go
但结果相同 - 消息说查询已成功执行,但没有任何改变。
任何帮助表示赞赏。
【问题讨论】:
标签: sql xml sql-server-2008 dml