Экспорт таблицы, содержащей столбец данных XML, в SQL Server 2008 - PullRequest
3 голосов
/ 24 января 2012

Мне нужно экспортировать таблицу из SQL Server 2008 из базы данных, а затем восстановить эту таблицу в локальной базе данных. Проблема в том, что один из столбцов содержит данные XML. Какой самый эффективный способ сделать это?

Ответы [ 2 ]

3 голосов
/ 28 января 2012

Вы также можете попробовать мастер «Экспорт данных».Это должно работать хорошо, учитывая ваш сценарий.

0 голосов
/ 24 января 2012

Вы можете использовать XML вместо простого файла.

Пример структуры и данных:

create table XMLTable
(
  ID int,
  XMLData xml
)

insert into XMLTable values
(1, '<root>item1</root>'),
(2, '<root>item2</root>')

Запрос данных с использованием for xml auto:

select *
from XMLTable
for xml auto, elements

Результат:

<XMLTable>
  <ID>1</ID>
  <XMLData>
    <root>item1</root>
  </XMLData>
</XMLTable>
<XMLTable>
  <ID>2</ID>
  <XMLData>
    <root>item2</root>
  </XMLData>
</XMLTable>

Загрузить XML в переменную типа данных XML в целевой БД и использовать XQuery для вставки данных.Используйте .value() для обычных столбцов и .query() для столбца XML.

declare @XML xml

set @XML = 
'<XMLTable>
  <ID>1</ID>
  <XMLData>
    <root>item1</root>
  </XMLData>
</XMLTable>
<XMLTable>
  <ID>2</ID>
  <XMLData>
    <root>item2</root>
  </XMLData>
</XMLTable>'

insert into XMLTable(ID, XMLData)
select T.N.value('ID[1]', 'int'),
       T.N.query('XMLData/*')
from @XML.nodes('/XMLTable') as T(N)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...