更新SQL Server 2008R2中表的XML列

时间:2014-10-20 11:35:50

标签: xml sql-server-2008

我在sql server 2008R2中有一个名为DateRule的表,我正在尝试更新XML列值,但它没有按预期工作。

  • DateRuleId:40
  • 说明:日期步骤开始后2个月
  • 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

1 个答案:

答案 0 :(得分:0)

它会:

SET DateRuleXml.modify('replace value of (/Daterule/Reference[1]/text())[1] with "6"');