SQL SERVER 读取 XML 数据

1.需要读取的XML 格式:

 1 <?xml version="1.0" standalone="yes"?>
 2 <DocumentElement>
 3   <hsData>
 4     <HS编码>9803009000</HS编码>
 5     <商品中文名>其他定制型软件</商品中文名>
 6     <海关监管条件 />
 7     <检验检疫类别 />
 8     <版本号 />
 9   </hsData>
10   <hsData>
11     <HS编码>9803003000</HS编码>
12     <商品中文名>定制型应用软件</商品中文名>
13     <海关监管条件 />
14     <检验检疫类别 />
15     <版本号 />
16   </hsData>
17   <hsData>
18     <HS编码>2922399020</HS编码>
19     <商品中文名>灭藻醌</商品中文名>
20     <海关监管条件 />
21     <检验检疫类别 />
22     <版本号 />
23   </hsData>
24 </DocumentElement>

2.SQL 代码

IF OBJECT_ID('XML_HSData') IS NULL
    BEGIN
        CREATE TABLE XML_HSData
            (
              HS编码 NVARCHAR(50) ,
              商品中文名 NVARCHAR(100) ,
              海关监管条件 NVARCHAR(20) ,
              检验检疫类别 NVARCHAR(30) ,
              版本号 NVARCHAR(10)
            )
    END
ELSE
    BEGIN
        TRUNCATE TABLE XML_HSData
    END

DECLARE @h INT
                -- 定义xml句柄
DECLARE @doc XML
        -- 定义xml对象
SELECT  @doc = BulkColumn
FROM    OPENROWSET(BULK 'C:\hsData.xml', SINGLE_BLOB) AS xmlData
        -- 获得xml对象
EXECUTE sp_xml_preparedocument @h OUTPUT, @doc
        -- 获得xml句柄
-- 插入表中
INSERT  INTO XML_HSData
        SELECT  *
        FROM    OPENXML(@h, '/DocumentElement/hsData', 2) WITH XML_HSData
EXECUTE sp_xml_removedocument @h        -- 删除xml句柄

SELECT * FROM XML_HSData

3. 效果:

posted on 2014-05-06 10:07  胡一凡  阅读(1411)  评论(0编辑  收藏  举报

导航