[英]With SQL Server XML data type, how to update the value attribute when searching with another attribute to locate the xml node?
[英]Update a SQL XML Field node value for a given attribute
我有一個具有以下格式的表格:
int IndexField
xml ConfigField
ConfigField 字段值可能類似於
<Parameters>
<Parameter Type="Config" Name="Prefix">hd</Parameter>
<Parameter Type="Config" Name="PgNumber">2</Parameter>
<Parameter Type="Config" Name="IsValid">False</Parameter>
</Parameters>
我想知道 SQL Server 語法來修改參數 XML 節點的PgNumber
值從 2 到 3 where IndexField = 22
謝謝
您可以使用函數modify()
和更正 XQuery 來設置您需要的值。 雖然語法相當棘手。 在您的情況下,您應該能夠使用這樣的查詢:
UPDATE YourTableName
SET ConfigField.modify('replace value of (/Parameters/Pararameter[@Name="PgNumber"]/text())[1] with "3"')
WHERE IndexField = 22
這是傳遞給 SQL Server 的modify()
方法的一種可能的 XQuery 表達式,用於更新<Parameter Name='PgNumber'>
元素的值:
UPDATE MyTable
SET ConfigField.modify('
replace value of
(/Parameters/Parameter[@Name="PgNumber"]/text())[1]
with 3
')
WHERE IndexField = 22
請注意,在 XPath/XQuery 中,您需要將@
放在屬性名稱的開頭以引用 XML 屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.