2013-05-13 105 views

回答

7

既然有你的XML文档中的XML命名空间xmlns:dev="http://www.w3.org/2001/XMLSchema"),您必须inlcude在你UPDATE声明!

试试这个:

;WITH XMLNAMESPACES(DEFAULT 'http://www.w3.org/2001/XMLSchema') 
UPDATE XmlTable 
SET XmlDocument.modify('replace value of (/Doc/@Settings)[1] with "NewTest"') 
WHERE XmlId = 1 
3

你应该在你更新的语法。尝试下面的语法声明命名空间

Declare @Sample table 
(xmlCol xml) 

Insert into @Sample 
values 
('<dev:Doc xmlns:dev="http://www.w3.org/2001/XMLSchema" 
         SchemaVersion="0.1" Settings="Testing" Ttile="Ordering"> 
     <Person id="1"> 
      <FirstName>Name</FirstName> 
     </Person> 
     </dev:Doc>') 
Select * from @Sample 
Update @Sample 
SET xmlCol.modify(
        'declare namespace ns="http://www.w3.org/2001/XMLSchema"; 
        replace value of (/ns:Doc/@Settings)[1] 
        with "NewTest"') 

Select * from @Sample