我在SQL Server 2012中有一个示例表。我正在运行一些查询,但.modify()
XQuery方法正在执行但未更新。在SQL Server中更新存储在XML列中的XML
下面是表
对于此只是想更新设置为 'NewTest'
这将执行但没有被更新!谢谢你的帮助!
我在SQL Server 2012中有一个示例表。我正在运行一些查询,但.modify()
XQuery方法正在执行但未更新。在SQL Server中更新存储在XML列中的XML
下面是表
对于此只是想更新设置为 'NewTest'
这将执行但没有被更新!谢谢你的帮助!
既然有你的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
你应该在你更新的语法。尝试下面的语法声明命名空间
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