我一直在努力处理这段简单的代码而没有结果。我只是想尝试将新节点添加到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;
没有错误,但新节点未显示在输出中。在SQL Server中使用XML之前,我必须首先设置一些东西吗?有什么建议为什么这不起作用?
提前致谢!
答案 0 :(得分:7)
当您使用[0]
时,您实际上在说[position()=0]
。第一个节点的位置为1
,因此如果要将新节点插入到[1]
的第一个匹配项中,则应将谓词更改为policyData
。