我有以下XML:
declare @XML xml
set @XML = '<root>
<ati id_ati="16546" />
</root>'
我有这个结果选择查询:
[id_ati]
344
566
788
545
我想将@XML修改为:
<root>
<ati id_ati="16546" />
<ati id_ati="344" />
<ati id_ati="566" />
<ati id_ati="788" />
<ati id_ati="545" />
</root>
怎么做?
韩国社交协会
答案 0 :(得分:1)
您可以使用insert (XML DML)修改XML变量。
构建要插入新XML变量的XML,然后使用sql:variable()
将该XML插入XML变量。
-- XML to change
declare @XML xml
set @XML =
'<root>
<ati id_ati="16546" />
</root>'
-- Table holding data to insert
declare @T table(id_ati int)
insert into @T values(344),(566),(788),(545)
-- Build the XML you want to add
declare @X xml
set @X =
(
select id_ati as "@id_ati"
from @T
for xml path('ati')
)
-- Modify your XML
set @XML.modify('insert sql:variable("@X") as last into root[1]')
-- View the result
select @XML
将表变量@T
替换为您获取数据的任何查询。
@X
中的XML如下所示:
<ati id_ati="344" />
<ati id_ati="566" />
<ati id_ati="788" />
<ati id_ati="545" />