SQL Server 2012にサンプルテーブルがあります。クエリは実行していますが、.modify()
XQueryメソッドは実行中ですが更新しません。ここでSQL ServerのXML列に格納されたXMLを更新します。
は、このために
表はちょうどこれが実行されますが、何も更新されていない 'NewTest'
に設定を更新しようとしています!助けてくれてありがとう!
SQL Server 2012にサンプルテーブルがあります。クエリは実行していますが、.modify()
XQueryメソッドは実行中ですが更新しません。ここでSQL ServerのXML列に格納されたXMLを更新します。
は、このために
表はちょうどこれが実行されますが、何も更新されていない 'NewTest'
に設定を更新しようとしています!助けてくれてありがとう!
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
あなたの更新構文.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