Sdílet prostřednictvím


Názvy sloupců s cestou zadanou jako data()

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Pokud je cesta zadaná jako název sloupce data(), bude hodnota považována za atomickou hodnotu ve vygenerovaném XML. Znak mezery se přidá do XML, pokud další položka serializace je také atomická hodnota. To je užitečné při vytváření hodnot prvků a atributů typu seznamu. Následující dotaz načte ID, název a seznam produktů v tomto modelu produktu.

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');

Vnořený výběr načte seznam ID produktů. Jako název sloupce pro ID produktů určuje "data()". Protože režim PATH určuje prázdný řetězec pro název prvku řádku, není vygenerován žádný prvek řádku. Místo toho se hodnoty vrátí jako přiřazené atributu ProductIDs prvku řádku nadřazeného SELECT. Toto je výsledek:

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

Viz také