【发布时间】:2018-11-14 15:54:06
【问题描述】:
这是我的表字段中的 XML
<CtcConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Ctc>3</Ctc>
<SalaryComponent>
<SalaryComponentConfiguration>
<Name>Basic</Name>
<DisplayOrder>0</DisplayOrder>
<Value>5634655</Value>
</SalaryComponentConfiguration>
<SalaryComponentConfiguration>
<Name>HR</Name>
<DisplayOrder>0</DisplayOrder>
<Value>1234</Value>
</SalaryComponentConfiguration>
<SalaryComponentConfiguration>
<Name>medical</Name>
<DisplayOrder>0</DisplayOrder>
<Value>0</Value>
</SalaryComponentConfiguration>
</SalaryComponent>
</CtcConfiguration>
我希望通过将现有的node(DisplayOrder) 值乘以 n 次来更新它。
这是我到目前为止更新节点值的结果:
DECLARE @NodeName VARCHAR(100)=N'Basic';
DECLARE @NewValue INT=3;
UPDATE payroll.pays
SET CtcConfiguration.modify(
N'replace value of (/CtcConfiguration
/SalaryComponent
/SalaryComponentConfiguration[(Name/text())[1]=sql:variable("@NodeName")]
/Value/text())[1]
with sql:variable("@NewValue")');
【问题讨论】:
-
我猜,因为你已经发布了一个问题,这是行不通的。它出了什么问题?
标签: sql-server tsql xpath xquery xml-dml