【发布时间】:2013-05-23 11:32:51
【问题描述】:
我有以下问题。我有一个存储在 sql 数据库中的 xml 文件。 我应该通过除以每 100 来更改所有 VALUE 标记值。 这是xml结构的提取:
<HEIGHTC>
<VALUE>15 </VALUE>
<HEIGHTC_DATE>201110180000</HEIGHTC_DATE>
</HEIGHTC>
<HEIGHTC>
<VALUE>15 </VALUE>
<HEIGHTC_DATE>201110250000 </HEIGHTC_DATE>
</HEIGHTC>
<HEIGHTC>
<VALUE>15 </VALUE>
<HEIGHTC_DATE>201111020000 </HEIGHTC_DATE>
</HEIGHTC>
<HEIGHTC>
<VALUE>15 </VALUE>
<HEIGHTC_DATE>201111080000 </HEIGHTC_DATE>
</HEIGHTC>
<HEIGHTC>
<VALUE>20 </VALUE>
<HEIGHTC_DATE>201111150000 </HEIGHTC_DATE>
</HEIGHTC>
<HEIGHTC>
<VALUE>15 </VALUE>
<HEIGHTC_DATE>201111290000 </HEIGHTC_DATE>
</HEIGHTC>
我找到了以下查询:
DECLARE @var varchar(50)
set @var='HEIGHTC'
UPDATE tcdc.dbo.BADM_Xml
SET xml_badm.modify('replace value of (/ROOT/*[local-name()=sql:variable("@var")]/VALUE/text())[1] with (/ROOT/*[local-name()=sql:variable("@var")]/VALUE)[1] * 0.01')
它一次只适用于单个节点:有没有办法在一条指令中概括和更新所有内容? 提前谢谢 迭戈
【问题讨论】:
标签: sql-server xml