경로가 data()로 지정된 열 이름

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

열 이름으로 지정된 경로가 있으면 값은 data()생성된 XML에서 원자성 값으로 처리됩니다. 직렬화의 다음 항목도 원자성 값이면 공백 문자가 XML에 추가됩니다. 이는 형식화된 목록 요소 및 특성 값을 만들 때 유용합니다. 다음 쿼리는 해당 제품 모델의 제품 모델 ID, 이름 및 제품 목록을 검색합니다.

USE AdventureWorks2022;
GO
SELECT ProductModelID       AS "@ProductModelID",
       Name                 AS "@ProductModelName",
      (SELECT ProductID AS "data()"
       FROM   Production.Product
       WHERE  Production.Product.ProductModelID =
              Production.ProductModel.ProductModelID
      FOR XML PATH (''))    AS "@ProductIDs"
FROM  Production.ProductModel
WHERE ProductModelID = 7
FOR XML PATH('ProductModelData');

중첩된 SELECT는 제품 ID 목록을 검색합니다. "data()"를 제품 ID의 열 이름으로 지정합니다. PATH 모드는 행 요소 이름에 빈 문자열을 지정하므로 행 요소가 생성되지 않습니다. 대신 값은 부모 SELECT의 행 요소에 대한 ProductIDs 특성에 <ProductModelData> 할당된 값으로 반환됩니다. 결과는 다음과 같습니다.

<ProductModelData
  ProductModelID = "7"
  ProductModelName="HL Touring Frame"
  ProductIDs="885 887 888 889 890 891 892 893"
/>

참고 항목