2013-05-13 8 views
7

SQL Server 2012'de bir örnek tablom var. Bazı sorguları çalıştırıyorum ancak .modify() XQuery yöntemi yürütülüyor ancak güncellenmiyor.SQL Server'da bir XML sütununda saklanan XML güncelleştirmesi

İşte sadece ayarları güncellemeye çalışıyorum masayı Bunun için

Xml Table

olan 'protokolüna'

Xml Snippet

Bu yürütebilir, ancak hiçbir şey güncelliyor! Herhangi bir yardım için teşekkürler!

Not Update Snippet

cevap

7

XML belgesinde bir XML ad alanı (xmlns:dev="http://www.w3.org/2001/XMLSchema") olmadığı için, size inlcude olması gerekir UPDATE açıklamada şu!

bu deneyin:

;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

Sen güncelleme sözdizimi .try aşağıda sözdizimi bir ad ilan etmeli

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