将复杂的XML数据分解为SQL中的许多表?

时间:2009-08-25 13:08:28

标签: xml sql-server-2005

我有一个相当复杂的XML文档,我想在SQL Server 2005中将其缩小到表格。我不想手动编写每个字段和表格映射。数据将进入数据仓库的临时区域,因此表格的结构并不重要。

到目前为止,我已经考虑过,并拒绝了以下内容......

OpenXML - 似乎我可以使用它在sql中将xml读入内存,但是必须编写一个sql加载来执行所有插入操作。不,谢谢。

XML批量加载 - 看起来相当不错,但我得到的印象是我希望写一个详细说明所有关系的XSD。当它们隐含在xml的层次结构中时,不明白我为什么要这么做。

SqlBulkCopy - 看起来我仍然需要编写所有映射内容。

拒绝所有这些我正在考虑在C#中推广我自己,这个想法似乎很简单。将数据读入xmlReader,然后遍历树并生成插入。我可以执行单独的操作,该操作仅在开发时运行以生成架构。

对此有何想法?

2 个答案:

答案 0 :(得分:1)

在SQL 2005中使用新的XML支持。它比早期版本中的OPENXML要好得多。你不需要xsd东西。

在某些时候,您需要一个映射。 XML可能是自描述的,但数据库表不是......

Example question (well my answer)

答案 1 :(得分:0)

在这种情况下,最终答案变得更加简单......

通过详细了解需求,结果发现即使数据是高度结构化的,我们需要的部分也可以用一个表来表示。因此,我可以对xml运行xslt转换,为我提供一组直接进入表格的行和列。在这种情况下通过SSIS。