分享方式:


有路徑指定為 data() 的資料行名稱

適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體

如果以資料行名稱指定的路徑是 data(),則在產生的 XML 中會將其值視為不可部分完成值。 如果序列化的下一個項目也是不可部分完成值,就會在 XML 中加入空白字元。 當您建立清單類型的元素與屬性值時,這會非常有用。 下列查詢會擷取產品型號識別碼、名稱以及該產品型號中的產品清單。

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 會擷取產品識別碼的清單。 它會將 "data()" 指定為產品識別碼的資料行名稱。 因為 PATH 模式會為資料列元素名稱指定空白字串,所以不會產生任何資料列元素。 而是會以指派給父項 SELECT 中 <ProductModelData> 資料列項目的 ProductID 屬性來傳回值。 以下是結果:

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

另請參閱