SQL Server XML修改没有结果

时间:2013-04-17 12:09:15

标签: sql-server xml

我有一个像

这样的xml文档
<xsd:form-definition ...>
   <xsd:page ..></xsd:page>
   <xsd:page ..></xsd:page>
...
</xsd:form-definition>

我想在第一个<xsd:page>元素

中插入一个新节点
DECLARE @res XML = '<Subject>English</Subject>'

SET @myXmlContent.modify('insert sql:variable("@res") as first into (/form-definition/page)[1]')

但没有变化,为什么?

2 个答案:

答案 0 :(得分:2)

修改的XQuery需要声明和引用xsd命名空间:

SET @myXmlContent.modify('declare namespace xsd="..."; insert sql:variable("@res") as first into (/xsd:form-definition/xsd:page)[1]') 

答案 1 :(得分:0)

试试这个 -

DECLARE @XML XML
SELECT @XML = 
'<xsd_form-definition>
   <xsd_page></xsd_page>
   <xsd_page></xsd_page>
</xsd_form-definition>'

DECLARE @res XML = '<VehicleManufacturerID>abc</VehicleManufacturerID>'

SELECT @XML.modify('insert sql:variable("@res") into (xsd_form-definition/xsd_page)[1]')

SELECT @XML