sql-server - OPENXML 与 OPENROWSET 和 xml 数据类型

标签 sql-server xml

为什么要使用 OPENXML 而不是 OPENROWSET (BULK 'file', SINGLE_BLOB) 并转换为 xml 数据类型?

最佳答案

我认为您在这里比较的是完全不同的东西:

  • OPENROWSET 只是简单地将磁盘上的文件作为单个 blob 导入 - 如果您确实需要将该文件内容作为单个大块信息,这非常有用 - 如果您想要存储整个文件内容作为单个 XML 字段

  • OPENXML 非常不同 - 它会打开并解释 XML 文件并将其转换为行集 - 它会根据源 XML 文件为您提供数据行和列,然后您可以将该信息存储在表中 - 在行和列中。您并没有将 XML 作为一个大块来获取,而是已将其“分解”为行和列

所以这实际上取决于您的需求 - 如果您需要将 XML 作为一个大块并将其存储 - 使用 OPENROWSET

如果您需要在 XML 中表示为列和行的数据,请使用 OPENXML(或者:首先使用 OPENROWSET 将 XML 作为一个整体导入,然后在 SQL 中使用 XQuery 函数Server 2005 及更高版本在加载后粉碎它)

关于sql-server - OPENXML 与 OPENROWSET 和 xml 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4295240/

相关文章:

java - 在 Java 中获取 XML 文件时出现问题

xml - 使用Shell脚本从xml获取元素并将其存储在数组中

sql-server - 如何更改 ssms 2017 中的引用突出显示颜色?

c# - 应用程序电子邮件架构

java - 将 Java 文档导出为 XML

java - axis 在发送 XML 之前会向其添加什么内容?

.net - 为什么 WebService 会在实际服务返回数据时返回空值?

sql-server - SQL Server 2005 - 如何比较字段值,如果不同则返回计数,每次出现

sql-server - 可以在多重多边形中获得单独的多边形吗?

sql-server - Transact SQL 中存储过程的并行执行