我需要从数据库中导出SQL Server 2008中的表,然后在本地数据库上恢复该表。问题是其中一列包含XML数据。最有效的方法是什么?
答案 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)