2012-08-16 29 views
3

我需要导入XML文件到SQL Server 2008 R2database。SET @xml = FILE_PATH

所以,我有一个硬编码XML数据查询:

DECLARE @xml XML 
SET @xml=' 
<goods_item> 
<goods_level>1</goods_level> 
<goods_isgroup>1</goods_isgroup> 
<goods_code>51852</goods_code> 
<goods_name></goods_name> 
<goods_parent></goods_parent> 
<goods_art></goods_art> 
<goods_buhart></goods_buhart> 
<goods_inpack>0</goods_inpack> 
<goods_packtxt></goods_packtxt> 
<goods_country></goods_country> 
<goods_gtd></goods_gtd> 
<goods_nds>0</goods_nds> 
<goods_unit></goods_unit> 
</goods_item> 
<goods_item> 
<goods_level>1</g oods_level> 
<goods_isgroup>1</goods_isgroup> 
<goods_code>51852</goods_code> 
<goods_name></goods_name> 
<goods_parent></goods_parent> 
<goods_art></goods_art> 
<goods_buhart></goods_buhart> 
<goods_inpack>0</goods_inpack> 
<goods_packtxt></goods_packtxt> 
<goods_country></goods_country> 
<goods_gtd></goods_gtd> 
<goods_nds>0</goods_nds> 
<goods_unit></goods_unit> 
</goods_item>' 

,它工作正常。但是,我怎样才能将硬编码XML数据更改为XML文件的路径?

有所了解:

SET @xml='D:\xml1.xml' 
+1

** **什么数据库系统,以及哪个版本? * SQL *只是*结构化查询语言* - 许多数据库系统中使用的语言,但没有AA数据库产品......像XML支持功能是非常特定于供应商 - 所以我们真的需要知道什么**数据库系统* *您正在使用.... – 2012-08-16 15:17:54

+0

MS SQL Server 2008 R2 – 2012-08-16 15:19:06

回答

1

你可以先导入到一个临时表是这样的:

declare @insert nvarchar(1000), @pathname varchar(200), @xml xml 

set @pathname = 'your path here' 

create table #tmp_xml(xmldata xml) 

set @insert = 'INSERT INTO #tmp_xml(xmldata) SELECT bulkcolumn 
     FROM OPENROWSET (BULK N''' + @pathname+ ''', SINGLE_BLOB) AS data' 

exec sp_executesql @insert 

select @xml = xmldata from #tmp_xml 

-- read, parse xml here .... 
drop table #tmp_xml 
相关问题