다음을 통해 공유


FOR XML 절의 기본 구문

FOR XML 모드는 RAW, AUTO, EXPLICIT 또는 PATH일 수 있습니다. 결과 XML의 모양을 결정합니다.

중요합니다

FOR XML 옵션에 대한 XMLDATA 지시문은 더 이상 사용되지 않습니다. RAW 및 AUTO 모드의 경우 XSD 생성을 사용하세요. EXPLICT 모드에서는 XMLDATA 지시문을 대체할 수 없습니다. 이 기능은 이후 버전의 Microsoft SQL Server에서 제거됩니다. 새 개발 작업에서 이 기능을 사용하지 말고 현재 이 기능을 사용하는 애플리케이션을 수정할 계획입니다.

다음은 FOR 절(Transact-SQL)에 설명된 기본 구문입니다.

[ FOR { BROWSE | <XML> } ]  
<XML> ::=  
XML   
    {   
      { RAW [ ('ElementName') ] | AUTO }   
        [   
           <CommonDirectives>   
           [ , { XMLDATA | XMLSCHEMA [ ('TargetNameSpaceURI') ]} ]   
           [ , ELEMENTS [ XSINIL | ABSENT ]   
        ]  
      | EXPLICIT   
        [   
           <CommonDirectives>   
           [ , XMLDATA ]   
        ]  
      | PATH [ ('ElementName') ]   
        [   
           <CommonDirectives>   
           [ , ELEMENTS [ XSINIL | ABSENT ] ]  
        ]  
     }   
  
 <CommonDirectives> ::=   
   [ , BINARY BASE64 ]  
   [ , TYPE ]  
   [ , ROOT [ ('RootName') ] ]  

주장들

RAW[('ElementName')]
쿼리 결과를 가져와서 결과 집합의 각 행을 요소 태그로 제네릭 식별자, <행 />가 있는 XML 요소로 변환합니다. 이 지시문을 사용할 때 선택적으로 행 요소의 이름을 지정할 수 있습니다. 결과 XML은 지정된 ElementName 을 각 행에 대해 생성된 행 요소로 사용합니다. 자세한 내용은 FOR XML에서 RAW 모드 사용을 참조하세요.

자동
단순하게 중첩된 XML 트리로 쿼리 결과를 반환합니다. SELECT 절에 하나 이상의 열이 나열된 FROM 절의 각 테이블은 XML 요소로 표시됩니다. SELECT 절에 나열된 열은 적절한 요소 특성에 매핑됩니다. 자세한 내용은 FOR XML에서 AUTO 모드 사용을 참조하세요.

명시적
결과 XML 트리 셰이프가 명시적으로 정의되도록 지정합니다. 이 모드를 사용하면 원하는 중첩에 대한 추가 정보가 명시적으로 지정되도록 쿼리를 특정 방식으로 작성해야 합니다. 자세한 내용은 FOR XML에서 EXPLICIT 모드 사용을 참조하세요.

경로
요소와 특성을 혼합하고 복합 속성을 나타내는 추가 중첩을 도입하는 더 간단한 방법을 제공합니다. FOR XML EXPLICIT 모드 쿼리를 사용하여 행 집합에서 이러한 종류의 XML을 생성할 수 있지만 PATH 모드는 번거로울 수 있는 EXPLICIT 모드 쿼리에 대한 더 간단한 대안을 제공합니다. PATH 모드는 중첩된 FOR XML 쿼리 및 XML 형식 인스턴스를 반환하는 TYPE 지시문을 작성하는 기능과 함께 복잡성이 적은 쿼리를 작성할 수 있습니다. 대부분의 EXPLICIT 모드 쿼리를 작성하는 대신 사용할 수 있습니다. 기본적으로 PATH 모드는 결과 집합의 각 행에 대해 < 행 요소> 래퍼를 생성합니다. 필요에 따라 요소 이름을 지정할 수 있습니다. 이 경우 지정된 이름이 포장 요소 이름으로 사용됩니다. 빈 문자열(FOR XML PATH(''))을 제공하는 경우 래퍼 요소가 생성되지 않습니다. 자세한 내용은 FOR XML에서 PATH 모드 사용을 참조하세요.

XMLDATA
XDR(인라인 XML-Data 축소) 스키마가 반환되도록 지정합니다. 스키마는 인라인 스키마로 문서 앞에 추가됩니다. 작업 샘플은 FOR XML에서 RAW 모드 사용을 참조하세요.

XML 스키마
인라인 W3C XML 스키마(XSD)를 반환합니다. 필요에 따라 이 지시문을 지정할 때 대상 네임스페이스 URI를 지정할 수 있습니다. 스키마에서 지정된 네임스페이스를 반환합니다. 자세한 내용은 인라인 XSD 스키마 생성을 참조하세요. 작업 샘플은 FOR XML에서 RAW 모드 사용을 참조하세요.

요소
ELEMENTS 옵션을 지정하면 열이 하위 요소로 반환됩니다. 그렇지 않은 경우에는 XML 특성에 매핑됩니다. 이 옵션은 RAW, AUTO 및 PATH 모드에서만 지원됩니다. 이 지시문을 사용할 때 선택적으로 XSINIL 또는 ABSENT를 지정할 수 있습니다. XSINIL은 xsi:nil 특성이 True로 설정된 요소를 NULL 열 값에 대해 만들도록 지정합니다. 기본적으로 또는 ABSENT를 ELEMENTS와 함께 지정하면 NULL 값에 대한 요소가 만들어지지 않습니다. 작업 샘플은 FOR XML에서 RAW 모드 사용 및 FOR XML 에서 AUTO 모드 사용을 참조하세요.

BINARY BASE64
BINARY Base64 옵션을 지정하면 쿼리에서 반환된 모든 이진 데이터가 base64로 인코딩된 형식으로 표시됩니다. RAW 및 EXPLICIT 모드를 사용하여 이진 데이터를 검색하려면 이 옵션을 지정해야 합니다. AUTO 모드에서는 이진 데이터가 기본적으로 참조로 반환됩니다. 작업 샘플은 FOR XML에서 RAW 모드 사용을 참조하세요.

유형
쿼리가 결과를 xml 형식으로 반환되도록 지정합니다. 자세한 내용은 TYPE Directive in FOR XML Queries를 참조하세요.

ROOT [('RootName')]
단일 최상위 요소를 결과 XML에 추가하도록 지정합니다. 필요에 따라 생성할 루트 요소 이름을 지정할 수 있습니다. 기본값은 "root"입니다.

또한 참조하십시오

FOR XML에서 RAW 모드 사용
FOR XML에서 AUTO 모드 사용
FOR XML에서 EXPLICIT 모드 사용
FOR XML에서 PATH 모드 사용
SELECT(Transact-SQL)
FOR XML(SQL Server)