행 집합으로부터 XML을 생성하기 위해 FOR XML 사용Generate XML from Rowsets with FOR XML

새로운 TYPE 지시어로 FOR XML을 사용하여 행 집합으로부터 xml 데이터 형식의 인스턴스를 생성할 수 있습니다.You can generate an xml data type instance from a rowset by using FOR XML with the new TYPE directive.

결과는 xml 데이터 형식의 열, 변수 또는 매개 변수에 할당할 수 있습니다.The result can be assigned to an xml data type column, variable, or parameter. 또한 FOR XML은 계층적 구조를 생성하도록 중첩될 수 있습니다.Also, FOR XML can be nested to generate any hierarchical structure. 이로 인해 FOR XML EXPLICIT보다 중첩된 FOR XML이 작성하기에 더욱 편리하지만 중첩이 많은 계층에서는 성능이 저하될 수 있습니다.This makes nested FOR XML much more convenient to write than FOR XML EXPLICIT, but it may not perform as well for deep hierarchies. FOR XML은 또한 새로운 PATH 모드를 제공합니다.FOR XML also introduces a new PATH mode. 이 새로운 모드는 열 값이 나타나는 XML 트리의 경로를 지정합니다.This new mode specifies the path in the XML tree where a column's value appears.

새로운 FOR XML TYPE 지시어를 사용하여 SQL 구문에서 관계형 데이터에 대해 읽기 전용 XML 뷰를 정의할 수 있습니다.The new FOR XML TYPE directive can be used to define read-only XML views over relational data with SQL syntax. 이 뷰는 다음 예에서와 같이 SQL 문과 포함된 XQuery에서 쿼리할 수 있습니다.The view can be queried with SQL statements and embedded XQuery, as shown in the following example. 또한 저장 프로시저에서 이러한 SQL 뷰를 참조할 수도 있습니다.You can also refer to these SQL views in stored procedures.

예: 생성된 xml 데이터 형식을 반환하는 SQL 뷰Example: SQL View Returning Generated xml Data Type

다음 SQL 뷰 정의는 XML 열로부터 검색된 관계형 열, pk 및 책 저자에 대해 XML 뷰를 만듭니다.The following SQL view definition creates an XML view over a relational column, pk, and book authors retrieved from an XML column:

CREATE VIEW V (xmlVal) AS  
SELECT pk, xCol.query('/book/author')  
FROM   T  
FOR XML AUTO, TYPE  

V 뷰에는 XML 유형의 단일 columnxmlVal이 있는 단일 행이 포함됩니다. 이 뷰는 일반적인 xml 데이터 형식 인스턴스와 같이 쿼리될 수 있습니다.The V view contains a single row with a single columnxmlVal of XML type. It can be queried like a regular xml data type instance. 예를 들어 다음 쿼리는 이름이 "David"인 저자를 반환합니다.For example, the following query returns the author whose first name is "David":

SELECT xmlVal.query('//author[first-name = "David"]')  
FROM   V  

SQL 뷰 정의는 주석 지정 스키마를 사용하여 만든 XML 뷰와 일부 비슷합니다.SQL view definitions are somewhat similar to XML views that are created by using annotated schemas. 하지만 여기에는 중요한 차이가 있습니다.However, there are important differences. SQL 뷰 정의는 읽기 전용이며 포함된 XQuery로 조작되어야 합니다.The SQL view definition is read-only and must be manipulated with embedded XQuery. XML 뷰는 주석 지정 스키마를 사용하여 생성됩니다.The XML views are created by using annotated schema. 또한 SQL 뷰는 XQuery 식을 적용하기 전에 XML 결과를 구체화하지만 XML 뷰의 XPath 쿼리는 기본 테이블에서 SQL 쿼리를 평가합니다.Additionally, the SQL view materializes the XML result before applying the XQuery expression, while the XPath queries on XML views evaluate SQL queries on the underlying tables.

참고 항목See Also

FOR XML(SQL Server)FOR XML (SQL Server)