我在sql server 2008R2中有一个名为DateRule的表,我正在尝试更新XML列值,但它没有按预期工作。
DateRuleXml:
<Daterule>
<Type>Timespan</Type>
<months>2</months>
<days>0</days>
<hours>0</hours>
<minutes>0</minutes>
<seconds>0</seconds>
<After>1</After>
<Reference>1</Reference>
</Daterule>
我想要运行的查询是:
update centralq3.wf.DateRule
set DateRuleXml.modify('replace value of (/Daterule/@Reference)[1] with "6"')
where DateRuleId = 40
并且:
update centralq3.wf.DateRule
set DateRuleXml.modify('replace value of (//@Reference)[1] with "6"')
where DateRuleId = 40
他们都成功并说(受影响的是1行),但Reference的值没有改变。我做错了什么?我知道有很多问题,但没有帮助我..
修改!! 的答案:
UPDATE centralq3.wf.DateRule
SET DateRuleXml.modify('replace value of (/Daterule/Reference[1]/text())[1] with "6"')
WHERE DateRuleId = 40
答案 0 :(得分:0)
它会:
SET DateRuleXml.modify('replace value of (/Daterule/Reference[1]/text())[1] with "6"');