Добавление узла в 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
.