2012-03-19 18 views
8

Jak scalić zawartość xml z @a i @b w @c?Scal dwa fragmenty xml w jeden?

declare @a xml = (select 1 aaa for xml path('AAAs')); 
declare @b xml = (select 1 bb1, 2 bb2 for xml path('BBBs')); 
declare @c xml = ... @a + @b ....? 

Muszę przekazać scalony xml do procedury przechowywanej.


Wiem, że można rzucić xml na varchar i połączyć je i przekonwertować z powrotem do xml. Jakieś lepsze podejście? Zawartość xml może być duża.

+0

chciałbym spróbować po prostu kwerendy zmiennych XML przy użyciu 'dla xml'. Nie jestem teraz na komputerze, ale coś takiego może działać. 'wybierz @a jako A, @b jako B dla ścieżki xml (" root ")' –

Odpowiedz

17

OK, znalazłem jeden sposób

select @a, @b for xml path ('') 
+0

Bardzo przydatne dla mnie! – mastervv

+0

+1 - Dzięki człowieku, zadziałało dla mnie –

+0

Znacznie łatwiej niż wiele innych sposobów znalezionych w sieci! Dzięki – Greg