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

时间:2013-08-26 15:29:11

标签: sql-server xml tsql 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;

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

提前致谢!

1 个答案:

答案 0 :(得分:7)

当您使用[0]时,您实际上在说[position()=0]。第一个节点的位置为1,因此如果要将新节点插入到[1]的第一个匹配项中,则应将谓词更改为policyData