> 데이터 베이스 > MySQL 튜토리얼 > Transact-SQL을 사용하여 XML 데이터를 SQL Server 테이블로 효율적으로 변환하려면 어떻게 해야 합니까?

Transact-SQL을 사용하여 XML 데이터를 SQL Server 테이블로 효율적으로 변환하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2025-01-03 01:13:45
원래의
120명이 탐색했습니다.

How can I efficiently transform XML data into a SQL Server table using Transact-SQL?

XML 데이터를 SQL Server 테이블로 변환

XML과 관련된 데이터 관리 시나리오의 경우 분석 및 처리를 위해 구조화된 테이블 형식으로 변환 필요할 수 있습니다. 이 작업은 SQL Server의 Transact-SQL(TSQL)을 사용하여 효과적으로 수행할 수 있습니다.

XML을 테이블로 변환

XML 데이터를 테이블로 변환하는 프로세스에는 세 가지 작업이 필요합니다. 접근 방식:

  1. FOR XML PATH: 이 접근 방식은 FOR XML을 사용합니다. XML 문서 내의 요소를 추출하고 행 집합을 만드는 PATH 절입니다. 데이터는 단일 열에 계층 구조로 저장됩니다.
  2. OPENXML: OPENXML을 사용하면 OPENXML 함수를 사용하여 XML 문서를 반복할 수 있습니다. 이 방법을 사용하면 생성된 테이블의 구조를 더 효과적으로 제어할 수 있습니다.
  3. XQuery: XQuery() 함수에서 XQuery 표현식을 활용하면 SQL Server 내에서 직접 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>
로그인 후 복사

FOR XML PATH 메서드를 적용하여 다음 코드는 이 XML을 테이블로 변환합니다.

DECLARE @xml XML = 
'<root>
    <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>
</root>';

SELECT
    IdInvernadero,
    IdProducto,
    IdCaracteristica1,
    IdCaracteristica2,
    Cantidad,
    Folio
FROM
    @xml.nodes('//row') AS tbl(row)
CROSS APPLY
    tbl.row.query('./@*') AS col(name, value);
로그인 후 복사

결과 테이블:

IdInvernadero  IdProducto  IdCaracteristica1  IdCaracteristica2  Cantidad  Folio
----------  ----------  ---------------  ---------------  -------  ------
8               3              8                    8                    25       4568457
3               3              1                    2                    72       4568457
로그인 후 복사

TSQL을 활용하면 XML 데이터를 구조화된 테이블로 효율적으로 변환하여 데이터 분석, 조작 및 보고 작업을 수행할 수 있습니다.

위 내용은 Transact-SQL을 사용하여 XML 데이터를 SQL Server 테이블로 효율적으로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿