【发布时间】:2014-06-04 14:13:46
【问题描述】:
我的问题是如何将迭代循环放入使用 XQuery 查找和更改节点值的 SQL Server 8 SQL 过程中。
我有一个 SQL Server 数据库表,其中包含一个名为 Data 的字段,其中包含 XML 数据,如下所示:-
<ContentTree xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://mynamespace">
<ContentObject>
<Id>164</Id>
<Order>A</Order>
<Catalogue>1</Catalogue>
</ContentObject>
<ContentObject>
<Id>165</Id>
<Order>A</Order>
<Catalogue>1</Catalogue>
</ContentObject>
<ContentObject>
<Id>166</Id>
<Order>B</Order>
<Catalogue>2</Catalogue>
</ContentObject>
<ContentObject>
<Id>166</Id>
<Order>B</Order>
<Catalogue>2</Catalogue>
</ContentObject>
</ContentTree>
我希望能够遍历所有 ContentObjects 并且 Order 值为 A,将 Catalog 值更改为 3。
我可以通过以下方式一次更改一个实例的值:-
UPDATE [Database Table]
SET Data.modify('declare namespace c="http://mynamespace";
replace value of (//c:ContentObject[c:Order = "A"]/c:Catalogue/text())[1] with ("3")')
WHERE DatabaseRecordId = '5'
但我希望能够将其置于一个循环中,并通过一个程序进行所有更改 - 这可能吗?
【问题讨论】:
标签: sql sql-server xml xquery-sql