在SQL Server 2008 R2中更新表的XML列
问题描述:
我在sql server 2008R2中有一个名为DateRule的表,我试图更新一个XML列值,但它不像预期的那样工作。在SQL Server 2008 R2中更新表的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
And:
update centralq3.wf.DateRule
set DateRuleXml.modify('replace value of (//@Reference)[1] with "6"')
where DateRuleId = 40
他们都成功并说(1行受影响),但引用的值没有改变。我做错了什么?我知道有很多关于这个问题,但没有帮助我..
编辑! 答:
UPDATE centralq3.wf.DateRule
SET DateRuleXml.modify('replace value of (/Daterule/Reference[1]/text())[1] with "6"')
WHERE DateRuleId = 40
答
它会:
SET DateRuleXml.modify('replace value of (/Daterule/Reference[1]/text())[1] with "6"');
试试这个:'设置DateRuleXml.modify('取代的价值(/Daterule/@Reference)[.=1][1]与“6”')'单独 – 2014-10-20 11:44:54
成功,告诉我,1行受到影响,但没有任何变化 – Ciprian 2014-10-20 11:49:54
工作!非常感谢你! – Ciprian 2014-10-20 11:55:42