Добавление узла в XML с помощью TRANSACT-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;

нет ошибок, но новый узел не отображается в выходных данных. Есть ли что-то, что я должен сначала настроить перед использованием XML в SQL Server? Есть предположения, почему это не работает?

спасибо заранее!

1 ответов


при использовании [0] вы на самом деле говорите [position()=0]. Первый узел имеет позицию 1 поэтому вы должны изменить предикат на [1] Если вы хотите вставить новый узел в первое вхождение policyData.