Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выгрузка в xml из ms sql server  [new]
Сергей Артемьев
Member

Откуда:
Сообщений: 11
Добрый день.
Подскажите, каким образом можно выгрузить в xml данные из нескольких таблиц в следующем виде:
<root>
<table_1>
<record_1>
<...>...<...>
</record_1>
</table_1>
<table_2>
<record_1>
<...>...<...>
</record_1>
</table_2>
</root>

Т.е. как вписать данные в документ из table_2, table_3 и т.д. в эту структуру?
14 мар 14, 12:00    [15722798]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка в xml из ms sql server  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
Сергей Артемьев,

FOR XML
14 мар 14, 12:06    [15722833]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка в xml из ms sql server  [new]
Сергей Артемьев
Member

Откуда:
Сообщений: 11
Ken@t,

Я понимаю, что из одной таблицы можно выгрузить так:

USE database
SELECT dbo.CURRENCY.RECID AS [@RecId],
dbo.CURRENCY.CURRENCYCODE AS [CurCode],
dbo.CURRENCY.TXT AS [Txt]
FROM dbo.CURRENCY
FOR XML PATH('Currency'), TYPE, ROOT('Data'), ELEMENTS XSINIL

А как после выгрузки из этой таблицы приписать данные из другой в этот же корень (вроде объединения в один корень)?
14 мар 14, 12:29    [15723026]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка в xml из ms sql server  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
Сергей Артемьев,

declare @t table
(
 i int
 ,c int
)

declare @t2 table
(
 i int
 ,c int
)

insert @t (i,c) values (1,1)
insert @t (i,c) values (1,2)

insert @t (i,c) values (2,1)
insert @t (i,c) values (2,2)


SELECT CONVERT( XML, REPLACE( N'<root>@ITEMS</root> ',N'@ITEMS', (

SELECT 
 i 
 ,c 
FROM @t T1 
FOR XML PATH('record'), root ('table1')  ) +(
SELECT 
 i as [@i]
 ,c as [@c]
FROM @t T2
FOR XML PATH('record'), root ('table1')  )
) )

что -то типа
14 мар 14, 12:52    [15723229]     Ответить | Цитировать Сообщить модератору
 Re: Выгрузка в xml из ms sql server  [new]
Сергей Артемьев
Member

Откуда:
Сообщений: 11
Ken@t,

Спасибо огромное. То что нужно.
14 мар 14, 13:14    [15723415]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить