2012-08-13 59 views
2

我有下面的XML:修改XML TSQL數據類型

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> 

如何做到這一點?

Tks。

回答

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" /> 
+0

U're right。對我來說工作得很好。韓國社交協會。 – Onaiggac 2012-08-13 20:47:20