使用T-SQL将XML feed直接读入表中的XML字段?

时间:2010-07-14 10:36:42

标签: sql xml import

我看到很多关于从T-SQL2005生成提要的资源,关于将XML解析为数据库模式,处理,批量操作等等。我没看到的是如何拥有,例如,语句/ s在存储过程或函数中,只需访问XML提要的URL,将XML加载到表字段或sproc变量中并关闭连接。

我知道可能有必要使用外部层,比如C#Web应用程序,但是直接读取源或文件会很好(考虑到T-SQL提供的所有其他复杂功能)。

2 个答案:

答案 0 :(得分:2)

如果文件位于同一服务器上,则可以使用OPENROWSET,例如

CREATE TABLE XmlImportTest
(
        xml_data xml
)
GO

INSERT INTO XmlImportTest(xml_data)
SELECT  xmlData 
FROM
(
    SELECT  * 
    FROM    OPENROWSET (BULK 'c:\TestXml.xml' , SINGLE_BLOB) AS XMLDATA
) AS FileImport (XMLDATA)

如果要从文件夹导入所有文件夹,请查看How to import a bunch of XML files from a directory in T-SQL

如果你需要从URL访问它,那么SSIS可以做到这一点,如果它是一个Web服务,甚至可能是SQLCLR

答案 1 :(得分:0)

我所知道的没有内置任何东西。可以通过Object Automation extended stored procedures来实现这一点,但你最好使用CLR(如果你必须在SQL Server中完成它 - 我觉得外部应用可能会更好)。