Sql server 2008 使用XQuery根据XML中的条件更新属性值

Sql server 2008 使用XQuery根据XML中的条件更新属性值,sql-server-2008,tsql,xquery,Sql Server 2008,Tsql,Xquery,我有以下XML <Root xmlns:test="http://sample"> <Values> <Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance" d3p1:type="1"> </Value> <Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance" d3p

我有以下XML

<Root xmlns:test="http://sample">
   <Values>
      <Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance" d3p1:type="1">
      </Value>
      <Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance" d3p1:type="1">
      </Value>
      <Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance" d3p1:type="2">
      </Value>
      <Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance" d3p1:type="2">
      </Value>
      <Value xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance" d3p1:type="1">
      </Value>
   </Values>
</Root>

在这里,我试图用
type=2
将所有值元素更新为
type=3

有人能告诉我怎么做吗?

declare@XML=
'
';
而@XML.exist('声明命名空间d3p1='http://www.w3.org/2001/XMLSchema-instance";
/根/值/值[@d3p1:type=“1”]')=1
开始
set@XML.modify('声明命名空间d3p1='http://www.w3.org/2001/XMLSchema-instance";
替换(/Root/Values/value[@d3p1:type=“1”]/@d3p1:type)[1]的值
带2’)
结束
选择@XML
结果: