【问题标题】:Import Relational Xml Data into sql server 2012将关系 XML 数据导入 sql server 2012
【发布时间】:2014-08-03 19:35:26
【问题描述】:
<Order>
  <AmazonOrderID>1111-222-33</AmazonOrderID>
  <MerchantOrderID>111-222-33</MerchantOrderID>
  <PurchaseDate>2014-08-03T18:11:11+00:00</PurchaseDate>
  <LastUpdatedDate>2014-08-03T18:11:14+00:00</LastUpdatedDate>
  <OrderStatus>Pending</OrderStatus>
  <SalesChannel>Amazon.in</SalesChannel>
  <FulfillmentData>
    <FulfillmentChannel>Amazon</FulfillmentChannel>
    <ShipServiceLevel>Standard</ShipServiceLevel>
    <Address>
      <City>bangalore</City>
      <State>karnataka</State>
      <PostalCode>560038</PostalCode>
      <Country>IN</Country>
    </Address>
  </FulfillmentData>
  <OrderItem>
    <ASIN>B00AW9A53Q</ASIN>
    <SKU>SiM13</SKU>
    <ItemStatus>Unshipped</ItemStatus>
    <ProductName>Chicco 500ml Body Lotion</ProductName>
    <Quantity>1</Quantity>
    <ItemPrice>
      <Component>
        <Type>Principal</Type>
        <Amount currency="INR">390.0</Amount>
      </Component>
    </ItemPrice>
  </OrderItem>
</Order>

如何将此 xml 数据导入到关系表中。我有 2 个表,一个是 Order,另一个是 items。我想在 order 表中插入下面提到的行,并作为主键。

   <AmazonOrderID>111-222-333</AmazonOrderID>
  <MerchantOrderID>1111-3333-444</MerchantOrderID>
  <PurchaseDate>2014-08-03T18:11:11+00:00</PurchaseDate>
  <LastUpdatedDate>2014-08-03T18:11:14+00:00</LastUpdatedDate>
  <OrderStatus>Pending</OrderStatus>
  <SalesChannel>Amazon.in</SalesChannel>

并以amazonid为外键在items表中订购商品

 <OrderItem>
    <ASIN>B00AW9A53Q</ASIN>
    <SKU>SiM13</SKU>
    <ItemStatus>Unshipped</ItemStatus>
    <ProductName>Chicco 500ml Body Lotion</ProductName>
    <Quantity>1</Quantity>
    <ItemPrice>
      <Component>
        <Type>Principal</Type>
        <Amount currency="INR">390.0</Amount>
      </Component>
    </ItemPrice>
  </OrderItem>
</Order>

请任何人为此提供解决方案..我将非常感激。

【问题讨论】:

    标签: sql xml import sql-server-2012


    【解决方案1】:

    假设您的 XML 在名为 XML 类型的 SQL 变量中,称为 @Input,您可以在问题的第一部分使用它:

    INSERT INTO dbo.Order(AmazonOrderID, MerchantOrderID, 
                          PurchaseDate, LastUpdateDate, OrderStatus, SalesChannel)
       SELECT
          AmazonOrderID = @input.value('(/Order/AmazonOrderID)[1]', 'varchar(25)'),
          MerchantOrderID = @input.value('(/Order/MerchantOrderID)[1]', 'varchar(25)'),
          PurchaseDate = @input.value('(/Order/PurchaseDate)[1]', 'datetimeoffset'),
          LastUpdatedDate = @input.value('(/Order/LastUpdatedDate)[1]', 'datetimeoffset'),
          OrderStatus = @input.value('(/Order/OrderStatus)[1]', 'varchar(20)'),
          SalesChannel = @input.value('(/Order/SalesChannel)[1]', 'varchar(50)')
    

    我不太清楚你想对问题的第二部分做什么 - 是否可能有多个 &lt;OrderItem&gt; 条目?你想对嵌套的&lt;ItemPrice&gt; 结构做什么?

    amazonid 作为外键是什么意思 - 你指的是什么AmazonId

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-31
      • 2012-06-26
      • 2011-09-06
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 2015-01-27
      相关资源
      最近更新 更多