>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 XML 데이터를 테이블로 변환하는 방법은 무엇입니까?

SQL Server에서 XML 데이터를 테이블로 변환하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-03 06:09:09798검색

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. 데이터를 저장할 테이블을 만듭니다. 데이터:
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

위 내용은 SQL Server에서 XML 데이터를 테이블로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.