TSQL XML ROOT

0

Czesc
Jak zrobic w TSQL XML który bedzie mial postac

<b
dane szczegolowe 1='sdsfdfds'
dane szczegolowe 2='fdgfdsg'
dane szczegolowe 3='gfhgfhdgf'
/>


<b
dane szczegolowe 1='fdgdsghh'
dane szczegolowe 2='esryytytyt'
dane szczegolowe 3='bvnnbvmm'
/>


<b
dane szczegolowe 1='ruyuyuytyut'
dane szczegolowe 2='rrewee'
dane szczegolowe 3='qwwqqqr'
/>

Czyli stałe są dwa tagi "a" i "b" , w tym, że "b" jest w "a"

SELECT(SELECT dane szczegolowe 1,dane szczegolowe 2, dane szczegolowe 3 FROM Tabela
FOR XML RAW('a'), TYPE)
FOR XML RAW('b'), TYPE)

nie działa dobrze, bo wynik mam:

<b.../>
<b.../>

b.../>

zamiast potrzebnego:

<b.../>


<b.../>

b.../>

0

coś się pokopało i moje tagi zżarło:(

0
--create table #TMP_TABELA (dane1 varchar(10), dane2 varchar(10))
/*
insert into #TMP_TABELA values ('6aaaaa', '6bbbbbb')
insert into #TMP_TABELA values ('5aaaaa', '5bbbbbb')
insert into #TMP_TABELA values ('4aaaaa', '4bbbbbb')
insert into #TMP_TABELA values ('3aaaaa', '3bbbbbb')
insert into #TMP_TABELA values ('2aaaaa', '2bbbbbb')
insert into #TMP_TABELA values ('1aaaaa', '1bbbbbb')
insert into #TMP_TABELA values ('0aaaaa', '0bbbbbb')
insert into #TMP_TABELA values ('7aaaaa', '7bbbbbb')
*/

SELECT 
    (SELECT dane1, dane2 from #TMP_TABELA           
     FOR XML RAW('b'), TYPE)
 FOR XML RAW('a'), TYPE

potrzebuję uzyskać:

<a>
  <b dane1="aaaaa" dane2="bbbbbb" />
</a>
<a>
  <b dane1="6aaaaa" dane2="6bbbbbb" />
</a>
<a>
  <b dane1="5aaaaa" dane2="5bbbbbb" />
</a>
<a>
  <b dane1="4aaaaa" dane2="4bbbbbb" />
</a>
<a>
  <b dane1="3aaaaa" dane2="3bbbbbb" />
</a>
<a>
  <b dane1="2aaaaa" dane2="2bbbbbb" />
</a>
<a>
  <b dane1="1aaaaa" dane2="1bbbbbb" />
</a>
<a>
  <b dane1="0aaaaa" dane2="0bbbbbb" />
</a>
<a>
  <b dane1="7aaaaa" dane2="7bbbbbb" />
</a>

a mam:

<a>
  <b dane1="aaaaa" dane2="bbbbbb" />
  <b dane1="6aaaaa" dane2="6bbbbbb" />
  <b dane1="5aaaaa" dane2="5bbbbbb" />
  <b dane1="4aaaaa" dane2="4bbbbbb" />
  <b dane1="3aaaaa" dane2="3bbbbbb" />
  <b dane1="2aaaaa" dane2="2bbbbbb" />
  <b dane1="1aaaaa" dane2="1bbbbbb" />
  <b dane1="0aaaaa" dane2="0bbbbbb" />
  <b dane1="7aaaaa" dane2="7bbbbbb" />
</a>
1
SELECT
dane1 'b/@dane1',
dane2 'b/@dane2'
FROM #TMP_TABELA FOR XML PATH('a')

podaje link do mojego artykułu o XML w Microsoft SQL Server 2008:

XML w relacyjnych bazach danych

1 użytkowników online, w tym zalogowanych: 0, gości: 1