【问题标题】:Importing and shredding XML into SQL Table将 XML 导入并分解到 SQL 表中
【发布时间】:2010-08-12 10:48:58
【问题描述】:

嗨,我希望有人可以帮助我,我正在尝试将 XML 元素导入到 SQL 表中,在 XML 格式。

首先,我有一个名为 Chassis.xml 的 XML 文件,看起来像这样。

<Chassis>
  <Chassis Id="1" Chassis="blah blah" Suitability="1" Structured="1" />
  <Chassis Id="2" Chassis="blah blah" Suitability="1" Structured="1" />
  <Chassis Id="3" Chassis="Blah Blah" Suitability="1" Structured="1" />
  <Chassis Id="4" Chassis="Blah Blah" Suitability="1" Structured="1" />
</Chassis>

我正在尝试编写一个将元素导入表的 SQL 过程,这是我想要的表布局。

test.hardwareComponents

Id          TypeId         XmlData
----------------------------------
1            0001         <Chassis Id="1" Chassis="blah blah" Suitability="1" Structured="1" />
2            0001         <Chassis Id="2" Chassis="blah blah" Suitability="1" Structured="1" />

TypeId 将是一个外键,稍后将定义该 Type 在另一个表中的内容,因此 TypeId 0001 是一个 Chassis ComponentType。

我尝试的每件事都失败了

【问题讨论】:

    标签: sql xml


    【解决方案1】:

    你有没有尝试过类似的东西

    DECLARE @xml XML
    
    SET @xml = 
    '<Chassis> 
      <Chassis Id="1" Chassis="blah blah" Suitability="1" Structured="1" /> 
      <Chassis Id="2" Chassis="blah blah" Suitability="1" Structured="1" /> 
      <Chassis Id="3" Chassis="Blah Blah" Suitability="1" Structured="1" /> 
      <Chassis Id="4" Chassis="Blah Blah" Suitability="1" Structured="1" /> 
    </Chassis>'
    
    
    SELECT  T2.Loc.value('@Id', 'INT') ID,
            T2.Loc.query('.')
    FROM    @xml.nodes('/Chassis/Chassis') as T2(Loc)
    

    【讨论】:

    • 非常感谢您解决了我的问题。谢谢你的回答,你极大地帮助了我。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    相关资源
    最近更新 更多