FOR XML 절의 기본 구문Basic Syntax of the FOR XML Clause

FOR XML 모드는 RAW, AUTO, EXPLICIT 또는 PATH일 수 있습니다.The FOR XML mode can be RAW, AUTO, EXPLICIT, or PATH. 이 모드는 결과 XML의 셰이프를 결정합니다.It determines the shape of the resulting XML.

중요

XMLDATA 지시어에 FOR XML 옵션은 더 이상 사용되지 않습니다.The XMLDATA directive to the FOR XML option is deprecated. RAW 및 AUTO 모드의 경우 XSD 생성을 사용하세요.Use XSD generation in the case of RAW and AUTO modes. EXPLICT 모드의 XMLDATA 지시어의 경우에는 대체할 옵션이 없습니다.There is no replacement for the XMLDATA directive in EXPLICT mode. Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다.This feature will be removed in a future version of Microsoft SQL Server. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

다음은 FOR 절(Transact-SQL)에 설명된 기본 구문입니다.Following is the basic syntax that is described in FOR Clause (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') ] ]  

인수Arguments

RAW[('ElementName')]RAW[('ElementName')]
쿼리 결과를 사용하여 결과 집합의 각 행을 요소 태그로 <row /> 일반 식별자를 갖는 XML 요소로 변환합니다.Takes the query result and transforms each row in the result set into an XML element that has a generic identifier, <row />, as the element tag. 이 지시어를 사용하는 경우 필요에 따라 행 요소에 대한 이름을 지정할 수 있습니다.You can optionally specify a name for the row element when you use this directive. 결과 XML은 각 행에 대해 행 요소가 생성될 때 지정된 ElementName 을 사용합니다.The resulting XML will use the specified ElementName as the row element generated for each row. 자세한 내용은 FOR XML에서 RAW 모드 사용을 참조하세요.For more information, see Use RAW Mode with FOR XML.

AUTOAUTO
단순하게 중첩된 XML 트리로 쿼리 결과를 반환합니다.Returns query results in a simple, nested XML tree. 최소한 한 개의 열이 SELECT 절에 나열되는 FROM 절의 각 테이블은 XML 요소로 표시됩니다.Each table in the FROM clause for which at least one column is listed in the SELECT clause is represented as an XML element. SELECT 절에 나열되는 열은 해당 요소의 특성에 매핑됩니다.The columns listed in the SELECT clause are mapped to the appropriate element attributes. 자세한 내용은 FOR XML에서 AUTO 모드 사용을 참조하세요.For more information, see Use AUTO Mode with FOR XML.

EXPLICITEXPLICIT
결과 XML 트리 셰이프가 명시적으로 정의되도록 지정합니다.Specifies that the shape of the resulting XML tree is defined explicitly. 쿼리는 이 모드를 사용하여 원하는 중첩에 대한 추가 정보가 명시적으로 지정되도록 특정 방식으로 작성되어야 합니다.By using this mode, queries must be written in a particular way so additional information about the nesting you want is specified explicitly. 자세한 내용은 FOR XML에서 EXPLICIT 모드 사용을 참조하세요.For more information, see Use EXPLICIT Mode with FOR XML.

PATHPATH
요소와 특성을 혼합하고 추가 중첩을 사용하여 복잡한 속성을 나타내는 보다 간단한 방법을 제공합니다.Provides a simpler way to mix elements and attributes, and to introduce additional nesting for representing complex properties. FOR XML EXPLICIT 모드 쿼리를 사용하여 행 집합에서 이러한 종류의 XML을 구성할 수 있지만 PATH 모드는 복잡할 수도 있는 EXPLICIT 모드 쿼리 대신 훨씬 간단한 방법을 제공합니다.You can use FOR XML EXPLICIT mode queries to construct this kind of XML from a rowset, but the PATH mode provides a simpler alternative to the possibly cumbersome EXPLICIT mode queries. XML 유형 인스턴스를 반환하는 중첩 FOR XML 쿼리 및 TYPE 지시어 작성 기능과 함께 PATH 모드를 사용하면 보다 간편하게 쿼리를 작성할 수 있습니다.PATH mode, together with the ability to write nested FOR XML queries and the TYPE directive to return xml type instances, allows you to write queries with less complexity. 이 모드는 대부분의 EXPLICIT 모드 쿼리 작성을 대신할 방법을 제공합니다.It provides an alternative to writing most EXPLICIT mode queries. 기본적으로 PATH 모드는 결과 집합의 각 행에 대한 <row> 요소 래퍼를 생성합니다.By default, PATH mode generates a <row> element wrapper for each row in the result set. 필요에 따라 요소 이름을 지정할 수 있습니다.You can optionally specify an element name. 요소 이름을 지정한 경우 지정된 이름이 래퍼 요소 이름으로 사용됩니다.If you do, the specified name is used as the wrapper element name. 빈 문자열(FOR XML PATH (''))을 제공하면 래퍼 요소가 생성되지 않습니다.If you provide an empty string (FOR XML PATH ('')), no wrapper element is generated. 자세한 내용은 FOR XML에서 PATH 모드 사용을 참조하세요.For more information, see Use PATH Mode with FOR XML.

XMLDATAXMLDATA
인라인 XDR(XML-Data Reduced) 스키마가 반환되어야 함을 지정합니다.Specifies that an inline XML-Data Reduced (XDR) schema should be returned. 스키마는 인라인 스키마로 문서 앞에 놓이게 됩니다.The schema is prepended to the document as an inline schema. 작업 샘플은 FOR XML에서 RAW 모드 사용을 참조하세요.For a working sample, see Use RAW Mode with FOR XML.

XMLSCHEMAXMLSCHEMA
인라인 W3C XML 스키마(XSD)를 반환합니다.Returns an inline W3C XML Schema (XSD). 이 지시어를 지정할 때 필요에 따라 대상 네임스페이스 URI를 지정할 수 있습니다.You can optionally specify a target namespace URI when specifying this directive. 이렇게 하면 스키마에 지정된 네임스페이스를 반환합니다.This returns the specified namespace in the schema. 자세한 내용은 인라인 XSD 스키마 생성을 참조하세요.For more information, see Generate an Inline XSD Schema. 작업 샘플은 FOR XML에서 RAW 모드 사용을 참조하세요.For a working sample, see Use RAW Mode with FOR XML.

ELEMENTSELEMENTS
ELEMENTS 옵션이 지정되면 열이 하위 요소로 반환됩니다.If the ELEMENTS option is specified, the columns are returned as subelements. 그렇지 않은 경우에는 XML 특성에 매핑됩니다.Otherwise, they are mapped to XML attributes. 이 옵션은 RAW, AUTO 및 PATH 모드에서만 지원됩니다.This option is supported in RAW, AUTO, and PATH modes only. 이 지시어를 사용하는 경우 필요에 따라 XSINIL 또는 ABSENT를 지정할 수 있습니다.You can optionally specify XSINIL or ABSENT when you use this directive. XSINIL은 True로 설정된 xsi:nil 특성이 있는 요소가 NULL 열 값에 대해 생성되도록 지정합니다.XSINIL specifies that an element that has an xsi:nil attribute set to True be created for NULL column values. 기본적으로 또는 ABSENT가 ELEMENTS와 함께 지정된 경우 요소가 NULL 값에 대해 생성되지 않습니다.By default or when ABSENT is specified together with ELEMENTS, no elements are created for NULL values. 작업 샘플은 FOR XML에서 RAW 모드 사용FOR XML에서 AUTO 모드 사용을 참조하세요.For a working sample, see Use RAW Mode with FOR XML and Use AUTO Mode with FOR XML.

BINARY BASE64BINARY BASE64
BINARY Base64 옵션이 지정되면 쿼리에서 반환되는 이진 데이터가 모두 base64 인코딩 형식으로 표시됩니다.If the BINARY Base64 option is specified, any binary data returned by the query is represented in base64-encoded format. RAW와 EXPLICIT 모드를 사용하여 이진 데이터를 검색하려면 이 옵션을 지정해야 합니다.To retrieve binary data by using RAW and EXPLICIT mode, this option must be specified. AUTO 모드에서 이진 데이터는 기본적으로 참조로 반환됩니다.In AUTO mode, binary data is returned as a reference by default. 작업 샘플은 FOR XML에서 RAW 모드 사용을 참조하세요.For a working sample, see Use RAW Mode with FOR XML.

TYPETYPE
쿼리가 결과를 xml 형식으로 반환하도록 지정합니다.Specifies that the query returns the results as the xml type. 자세한 내용은 TYPE Directive in FOR XML Queries를 참조하세요.For more information, see TYPE Directive in FOR XML Queries.

ROOT [('RootName')]ROOT [('RootName')]
단일 최상위 요소가 결과 XML에 추가되도록 지정합니다.Specifies that a single, top-level element be added to the resulting XML. 필요에 따라 생성할 루트 요소 이름을 지정할 수 있습니다.You can optionally specify the root element name to generate. 기본값은 "root"입니다.The default value is "root".

참고 항목See Also

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