2013-05-13 15 views
7

SQL Server 2012にサンプルテーブルがあります。クエリは実行していますが、.modify() XQueryメソッドは実行中ですが更新しません。ここでSQL ServerのXML列に格納されたXMLを更新します。

は、このために

Xml Table

表はちょうどこれが実行されますが、何も更新されていない 'NewTest'

Xml Snippet

に設定を更新しようとしています!助けてくれてありがとう!

Not Update Snippet

答えて

7

XML名前空間xmlns:dev="http://www.w3.org/2001/XMLSchema")はXMLドキュメントでありますので、あなたのUPDATE文でそれをinlcude必要があります!

これを試してみてください:

;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

あなたの更新構文.Try以下の構文で名前空間を宣言する必要があり

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 
関連する問題