请考虑这个 XML:
<Employees>
<Person>
<ID>1000</ID>
<Name>Nima</Name>
<LName>Agha</LName>
</Person>
<Person>
<ID>1001</ID>
<Name>Ligha</Name>
<LName>Ligha</LName>
</Person>
<Person>
<ID>1002</ID>
<Name>Jigha</Name>
<LName>Jigha</LName>
</Person>
<Person>
<ID>1003</ID>
<Name>Aba</Name>
<LName>Aba</LName>
</Person>
</Employees>
我想编写一个获取数字的过程,然后将一个元素插入到第 n 个 Person 元素中。例如,如果 1 传递给我的过程,我将一个元素插入到第一人称元素中。
最佳答案
DECLARE @data XML =
'
<Employees>
<Person>
<ID>1000</ID>
<Name>Nima</Name>
<LName>Agha</LName>
</Person>
<Person>
<ID>1001</ID>
<Name>Ligha</Name>
<LName>Ligha</LName>
</Person>
<Person>
<ID>1002</ID>
<Name>Jigha</Name>
<LName>Jigha</LName>
</Person>
<Person>
<ID>1003</ID>
<Name>Aba</Name>
<LName>Aba</LName>
</Person>
</Employees>
'
DECLARE @offset INT = 2
DECLARE @value VARCHAR(100) = 'newvalue'
SET @data.modify('insert <NewAttribute>{sql:variable("@value")}</NewAttribute> as last into (/Employees/Person)[sql:variable("@offset")][1]')
SELECT @data
关于sql - 在 Sql Server 的 xml 中向第 n 个元素插入一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16437904/