Sql server OPENXML vs OPENROWSET和xml数据类型
为什么您要使用OPENXML而不是OPENROWSET(大容量“文件”,单块)并转换为xml数据类型?我认为您在这里比较的是完全不同的东西:Sql server OPENXML vs OPENROWSET和xml数据类型,sql-server,xml,Sql Server,Xml,为什么您要使用OPENXML而不是OPENROWSET(大容量“文件”,单块)并转换为xml数据类型?我认为您在这里比较的是完全不同的东西: OPENROWSET只需将一个文件作为单个blob导入到磁盘上即可—如果确实需要将该文件内容作为一大块信息—如果您希望将整个文件内容存储为一个XML字段,这将非常有用 OPENXML非常不同-它将打开并解释XML文件,并将其转换为行集-它将根据源XML文件为您提供数据行和列,然后您可以将该信息存储在表中-行和列中。您不会将XML作为一个大的块来获取,但是
- OPENROWSET只需将一个文件作为单个blob导入到磁盘上即可—如果确实需要将该文件内容作为一大块信息—如果您希望将整个文件内容存储为一个XML字段,这将非常有用
- OPENXML非常不同-它将打开并解释XML文件,并将其转换为行集-它将根据源XML文件为您提供数据行和列,然后您可以将该信息存储在表中-行和列中。您不会将XML作为一个大的块来获取,但是它已经被“切碎”成了行和列
如果需要XML中表示为列和行的数据,请使用OPENXML(或者:首先使用OPENROWSET将XML作为一个整体导入,然后使用SQL Server 2005中的XQuery函数,并在加载后将其分解)您的最后一句话说明了为什么我认为这两种方法可以做同样的事情:加载和查询xml。假设你想查询它——而不仅仅是存储它——为什么你会选择一个而不是另一个呢?@Daniel:就我个人而言,我发现OPENROWSET的大容量负载,然后使用XQuery查询(或者选择性地分解)XML更简单的路径XML数据类型(结合OPENROWSET大容量)似乎取代了、过时的OPENXML。嗨,十年后,但我正在创建一个XML课程,并希望正确地实现这一点。当数据在磁盘上时会使用OPENROWSET吗?当数据已经在内存中时会使用OPENXML吗?啊,我现在知道OPENROWSET也可以处理.csv文件(我猜是任何OLEDB源代码)-我以前不知道这一点。