Verwenden von XML.Modifizieren, wie man einen Knoten einfügt UNDERNEATH einen vorhandenen Knoten einfügt

Mit SQL und der function xml.modify gibt es sowieso einen neuen Knoten unter einem bestimmten Knoten hinzuzufügen?

Hier ist mein XML

<TESTCASESUMMARY> <TESTCASES> <TESTS id="1"> <TEST1>1</TEST1> <TEST2>10</TEST2> <TEST3>10</TEST3> <TEST4>0</TEST4> <TEST5>0.75</TEST5> <TEST6>10</TEST6> <TEST7/> <TEST8>0.05</TEST8> <TEST9>0.05</TEST9> <TEST10> <TEST11>0.05</TEST11>B</TEST10> <TEST12/> <TEST13/> </TESTCASES> </TESTCASESUMMARY> 

Ich habe derzeit

 SET @xml.modify('insert <TEST11>{sql:variable("@TEST11")}</TEST11> as first into (TESTCASESUMMARY/TESTCASES/TESTS[sql:variable("@counter")]/TEST10)[1]') 

Ich muss Test 11 unter Test 10 und nicht auf dem gleichen Niveau zu bekommen

Danke

   

Ich hoffe ich bekomme das richtig …

Sie können after einen Knoten angeben, wo Sie den neuen Knoten direkt hinter sich lassen wollen. Aber dieser Knoten muss existieren …

 DECLARE @xml XML= N'<TESTCASESUMMARY> <TESTCASES> <TESTS id="1"> <TEST1>1</TEST1> <!-- more nodes --> <TEST10>B</TEST10> <TEST12/> <TEST13/> </TESTS> </TESTCASES> </TESTCASESUMMARY>'; DECLARE @Value11 VARCHAR(100)='0.05'; DECLARE @counter INT=1; SET @xml.modify(N'insert <TEST11>{sql:variable("@Value11")}</TEST11> after (/TESTCASESUMMARY/TESTCASES/TESTS[sql:variable("@counter")]/TEST10)[1]'); SELECT @xml; 

Das Ergebnis

 <TESTCASESUMMARY> <TESTCASES> <TESTS id="1"> <TEST1>1</TEST1> <!-- more nodes --> <TEST10>B</TEST10> <TEST11>0.05</TEST11> <TEST12 /> <TEST13 /> </TESTS> </TESTCASES> </TESTCASESUMMARY>