将XML层次结构数据导入SqlServer表的最佳方式

本文关键字:最佳 方式 SqlServer 导入 XML 层次结构 数据 | 更新日期: 2023-09-27 18:29:42

我有一个用ASP.NET C#应用程序编写的web应用程序,用户可以在其中以XML形式上传他的数据。这些数据具有一对多关系。这就是我选择XML而不是CSV的原因。如果有一种方法可以通过CSV实现这一点,请给出提示。它没有那么冗长。我的XML有以下结构:

<Parent column1="value1" column2="value2">
    <Child column1="value3" />
    <Child column1="value4" />
</Parent>

此模板重复自身。当我得到上传的文件时,它是字节数组(byte[])的形式。如何在两个相应的表Parent和Child中优雅地导入它?请记住,我将托管此web应用程序,因此我可能无法访问命令行工具或运行xp_cmdshell的权限。我现在的想法是创建System.XmlDocument,然后遍历该文档并通过存储过程插入行。对于每个表中的每一行,都有一条语句。我想问的是:有更好的方法吗?

将XML层次结构数据导入SqlServer表的最佳方式

您应该了解一下SQLXML Bulk Load,它针对导入大型xml文件进行了优化。我过去已经成功地在数千条记录中使用了它,并且轻而易举地击败了其他xml导入。

http://msdn.microsoft.com/en-gb/library/ms171878.aspx