读取 XML 数据并构建查询以将值插入 SQL Server DB 的最佳方法是啥?

Posted

技术标签:

【中文标题】读取 XML 数据并构建查询以将值插入 SQL Server DB 的最佳方法是啥?【英文标题】:What's the best approach for reading in XML data and building a query to insert the values into a SQL Server DB?读取 XML 数据并构建查询以将值插入 SQL Server DB 的最佳方法是什么? 【发布时间】:2010-10-07 14:29:13 【问题描述】:

读取 XML 数据并构建查询以将值插入 SQL Server DB 的最佳方法是什么?

对于这种情况,有人有最好的方法吗?

【问题讨论】:

【参考方案1】:

就我个人而言,我使用 DataSet.ReadXML()。然后它将所有数据放入 DataSet 中的 DataTables 中,然后更容易循环和操作数据。

【讨论】:

【参考方案2】:

SQL 2005 具有非常好的 xml 功能。这是一种使用技术 XML Parameters

【讨论】:

【参考方案3】:

您知道 MS SQL Server 2005/8 的 XML 特性吗?您可以将强类型化的 XML 作为列直接插入 SQL 中,然后强制该 XML 针对指定的架构有效。

您甚至可以索引 XML 中的列并针对它运行 Xquery。

我们能否提供更多关于您想要做什么的信息?

【讨论】:

【参考方案4】:

写一个和xml结构类似的数据库schema,然后写一个Linq To Xml和Linq To Sql语句来推入数据。

【讨论】:

【参考方案5】:

如果您需要相当简单的数据(即第一级子级),那么我过去成功使用的一个选项是使用XmlReader 来读取 xml(一次在子级上),呈现轻量级IDataReader 中的数据,SqlBulkCopy 可以使用这些数据将数据泵入。Like so。如果数据比较复杂,使用sqlxml/bulk load。

【讨论】:

【参考方案6】:

将数据作为 XML 文档传递给存储过程,传递给具有 XML 数据类型的变量。然后在过程中解析文档并将数据加载到表中。

我举个例子here。

【讨论】:

【参考方案7】:

你的问题在细节上不清楚:

如果您想将任意 XML 文件插入到 db 表中,请声明一个 XML 列 (SQL2005+),然后简单地将数据作为字符串插入。

如果您的 XML 文件遵循 XML 模式,则可以使用 XSD 声明 XML SCHEMA COLLECTION,将 XML 列绑定到该 xml 模式集合,然后插入数据。 SQL Server 将根据该 XSD 验证每个插入的 XML 值。

如果您想手动解析 XML 数据,请使用 XPath 或 XPathNavigator 或 XMLDocument.SelectNodes 提取数据,并将它们按记录插入到您的数据库表中。

您可能希望在您的问题中更具体地说明哪些替代方案适用于您的案例。

【讨论】:

以上是关于读取 XML 数据并构建查询以将值插入 SQL Server DB 的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

从file.Python3将值变量插入sql查询

读取文本文件以将数据插入 Oracle SQL 表

SQL查询INSERT无法将值插入我的数据库[重复]

如何创建触发器以将值插入到插入时为 Max([ID Field])+1 的 ID 字段中

带条件的 SQL 插入查询

可以查询 XML 模式集合的创建脚本吗?