Update XML stored in a XML column in SQL Server

前端 未结 2 1310
不知归路
不知归路 2021-01-12 12:23

I have a sample table in SQL Server 2012. I am running some queries against but the .modify() XQuery method is executing but not updating.

Here is the t

相关标签:
2条回答
  • 2021-01-12 12:48

    Since there is a XML namespace (xmlns:dev="http://www.w3.org/2001/XMLSchema") in your XML document, you must inlcude that in your UPDATE statement!

    Try this:

    ;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
    
    0 讨论(0)
  • 2021-01-12 12:55

    You should declare a namespace in your update syntax .Try the below syntax

    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
    
    0 讨论(0)
提交回复
热议问题