Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server 2008中导出包含XML数据列的表_Xml_Sql Server 2008_Export - Fatal编程技术网

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

在SQL Server 2008中导出包含XML数据列的表,xml,sql-server-2008,export,Xml,Sql Server 2008,Export,我需要从数据库中导出SQL Server 2008中的表,然后在本地数据库中还原该表。问题是其中一列包含XML数据。最有效的方法是什么?您可以使用XML而不是平面文件 样本结构和数据: create table XMLTable ( ID int, XMLData xml ) insert into XMLTable values (1, '<root>item1</root>'), (2, '<root>item2</root>')

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

您可以使用XML而不是平面文件

样本结构和数据:

create table XMLTable
(
  ID int,
  XMLData xml
)

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

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

您也可以尝试“导出数据”向导。考虑到您的场景,这应该可以很好地工作。

如果没有XML列,您将如何执行此操作?通常,我会导出到平面文件。但这会导致XML列出错
<XMLTable>
  <ID>1</ID>
  <XMLData>
    <root>item1</root>
  </XMLData>
</XMLTable>
<XMLTable>
  <ID>2</ID>
  <XMLData>
    <root>item2</root>
  </XMLData>
</XMLTable>
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)