更新存储在SQL Server中的XML列中的XML

Key*_*dly 7 t-sql sql-server sql-server-2008 sql-server-2012

我在SQL Server 2012中有一个示例表.我正在运行一些查询,但.modify()XQuery方法正在执行但没有更新.

这是表格

Xml表

为此,只是尝试将设置更新为"NewTest"

Xml片段

这将执行但没有更新!谢谢你的帮助!

不更新代码段

mar*_*c_s 7

由于XML文档中有XML命名空间(xmlns:dev="http://www.w3.org/2001/XMLSchema"),因此必须在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
Run Code Online (Sandbox Code Playgroud)