如何通过XML文件导入/导出SQL Server表

时间:2019-05-18 16:17:11

标签: sql-server xml

我正在从公共机构接收XML格式的数据文件。文件的结构和其中的符号使我认为我看到的是从SQL Server进行的批量表转储。每个XML文件均以架构定义开头。随后是多个元素,每个元素看起来都包含一个表数据行。这些文件的结构使我认为它们是由SQL Server本身中的某个设施创建的。

我看过SQL Server文档和在线文章,但是找不到有关如何实现的信息。我在想,如果有一个内置的设施可以以这种格式导出数据,那么必须有一个内置的设施可以将数据导入回SQL Server。

在这里可以找到一个XML文件的片段,其中显示了开始的模式部分和几个数据元素。 sample data XML file

我是否正确认为这些文件是SQL Server转储?如果是这样,这些是谁出口然后进口的?

1 个答案:

答案 0 :(得分:0)

您可以使用SQL Server的xml功能。像这样的东西。

导入

declare @x xml = N'--your xml here'

; with xmlnamespaces('urn:schemas-microsoft-com:sql:SqlRowSet1' as p)--required as xml has xmlns attribute
--insert mytable
select t.v.value('p:pool_idn[1]','int') pool_idn, --note p: prefix
t.v.value('p:eff_dte[1]','datetime') eff_dte,
t.v.value('p:pool_nam[1]','varchar(50)') pool_nam
--and so on
from @x.nodes('root/p:pool') t(v)

导出

select * from mytable
for xml auto, elements, root, xmlschema('urn:my:schema')