使用TRANSACT-SQL将节点添加到XML

Osc*_*car 8 xml t-sql sql-server xquery-sql

我一直在努力处理这段简单的代码而没有结果.我只是想在XML变量中添加一个新节点.

DECLARE @XML XML;
SET @XML = '<root>
<policyData>
    <txtComentario />
    <idRegProducto>76</idRegProducto>
    <txtDuracion>24</txtDuracion>
</policyData>
</root>';
DECLARE @NODE XML;
SET @NODE = '<newNode>10</newNode>';
SET @XML.modify
('insert sql:variable("@NODE") as first
into (/root/policyData)[0]')
SELECT @XML;
Run Code Online (Sandbox Code Playgroud)

没有错误,但新节点未显示在输出中.在SQL Server中使用XML之前,我必须首先设置一些东西吗?有什么建议为什么这不起作用?

提前致谢!

Mik*_*son 8

当你使用时,[0]你实际上在说[position()=0].第一个节点有位置,1因此[1]如果要将新节点插入第一个节点,则应将谓词更改为policyData.