【问题标题】:How to insert from XML file into SQL server?如何从 XML 文件插入 SQL 服务器?
【发布时间】:2012-12-20 00:14:07
【问题描述】:

如果文件格式是这样的,如何从XML文件插入SQL Server?

我想要列 DescriptionAliasName

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE ldmlBCP47 SYSTEM "../../common/dtd/ldmlBCP47.dtd">
<ldmlBCP47> 
   <version number="$Revision: 6625 $"/> 
   <generation date="$Date: 2012-03-01 15:01:04 -0800 (Thu, 01 Mar 2012) $"/> 
   <keyword> 
      <key description="Time zone key" alias="timezone" name="tz"> 
         <type description="Andorra" alias="Europe/Andorra" name="adalv"/> 
         <type description="Dubai, United Arab Emirates" alias="Asia/Dubai" name="aedxb"/> 
         <type description="Kabul, Afghanistan" alias="Asia/Kabul" name="afkbl"/> 
         <type description="Antigua" alias="America/Antigua" name="aganu"/> 
         <type description="Anguilla" alias="America/Anguilla" name="aiaxa"/> 
         <type description="Tirane, Albania" alias="Europe/Tirane" name="altia"/> 

【问题讨论】:

标签: sql xml xquery sql-server-2012


【解决方案1】:

假设你的意思是从&lt;type&gt; XML 元素中获取三个属性,那么你可以试试这个:

DECLARE @input XML = '<ldmlBCP47> 
   <version number="$Revision: 6625 $"/> 
   <generation date="$Date: 2012-03-01 15:01:04 -0800 (Thu, 01 Mar 2012) $"/> 
   <keyword> 
      <key description="Time zone key" alias="timezone" name="tz"> 
         <type description="Andorra" alias="Europe/Andorra" name="adalv"/> 
         <type description="Dubai, United Arab Emirates" alias="Asia/Dubai" name="aedxb"/> 
         <type description="Kabul, Afghanistan" alias="Asia/Kabul" name="afkbl"/> 
         <type description="Antigua" alias="America/Antigua" name="aganu"/> 
         <type description="Anguilla" alias="America/Anguilla" name="aiaxa"/> 
         <type description="Tirane, Albania" alias="Europe/Tirane" name="altia"/> 
        </key>
    </keyword>
</ldmlBCP47>'

SELECT
    [Description] = XTbl.TypeNode.value('@description', 'varchar(50)'),
    [Alias] = XTbl.TypeNode.value('@alias', 'varchar(50)'),
    [Name] = XTbl.TypeNode.value('@name', 'varchar(50)')
FROM
    @input.nodes('/ldmlBCP47/keyword/key/type') AS XTbl(TypeNode)

结果如下:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    相关资源
    最近更新 更多