首页 >数据库 >mysql教程 >如何将 XML 数据转换为 SQL Server 中的表?

如何将 XML 数据转换为 SQL Server 中的表?

Barbara Streisand
Barbara Streisand原创
2025-01-03 06:09:09794浏览

How to Convert XML Data to a Table in SQL Server?

在 SQL Server 中将 XML 转换为表格

在 SQL Server 中,可以通过多种方法实现将 XML 数据转换为表格格式。一种方法涉及使用节点方法从 XML 结构中提取所需的元素,然后选择这些元素作为结果表中的列。

考虑以下 XML 数据:

<row>
    <IdInvernadero>8</IdInvernadero>
    <IdProducto>3</IdProducto>
    <IdCaracteristica1>8</IdCaracteristica1>
    <IdCaracteristica2>8</IdCaracteristica2>
    <Cantidad>25</Cantidad>
    <Folio>4568457</Folio>
</row>
<row>
    <IdInvernadero>3</IdInvernadero>
    <IdProducto>3</IdProducto>
    <IdCaracteristica1>1</IdCaracteristica1>
    <IdCaracteristica2>2</IdCaracteristica2>
    <Cantidad>72</Cantidad>
    <Folio>4568457</Folio>
</row>

至将此 XML 转换为表,请按照以下步骤操作:

  1. 创建一个表来存储data:
CREATE TABLE TableName (
    IdInvernadero smallint,
    IdProducto smallint,
    IdCaracteristica1 smallint,
    IdCaracteristica2 smallint,
    Cantidad int,
    Folio varchar(7)
);
  1. 将 XML 加载到变量中:
DECLARE @xml XML = '<root><row><IdInvernadero>...</row><row><IdInvernadero>...</row></root>';
  1. 使用节点提取元素方法:
INSERT INTO TableName (
    IdInvernadero,
    IdProducto,
    IdCaracteristica1,
    IdCaracteristica2,
    Cantidad,
    Folio
)
SELECT  
       Tbl.Col.value('IdInvernadero[1]', 'smallint'),  
       Tbl.Col.value('IdProducto[1]', 'smallint'),  
       Tbl.Col.value('IdCaracteristica1[1]', 'smallint'),
       Tbl.Col.value('IdCaracteristica2[1]', 'smallint'),
       Tbl.Col.value('Cantidad[1]', 'int'),
       Tbl.Col.value('Folio[1]', 'varchar(7)')
FROM   @xml.nodes('//row') Tbl(Col);

此查询将提取的元素插入到具有指定列名的表中。生成的表将具有以下结构:

IdInvernadero IdProducto IdCaracteristica1 IdCaracteristica2 Cantidad Folio
8 3 8 8 25 4568457
3 3 1 2 72 4568457

以上是如何将 XML 数据转换为 SQL Server 中的表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn