在SQL Server 2008中导出包含XML数据列的表

时间:2012-01-24 17:20:23

标签: xml sql-server-2008 export

我需要从数据库中导出SQL Server 2008中的表,然后在本地数据库上恢复该表。问题是其中一列包含XML数据。最有效的方法是什么?

2 个答案:

答案 0 :(得分:3)

您也可以尝试“导出数据”向导。根据您的情况,这应该很有效。

答案 1 :(得分:0)

您可以使用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)