Spalten mit einem Namen, der als Wildcardzeichen angegeben ist

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Wenn der angegebene Spaltenname ein Platzhalterzeichen (*) ist, wird der Inhalt dieser Spalte eingefügt, als ob kein Spaltenname angegeben ist. Wenn die Spalte nicht vom Typxml ist, wird der Inhalt der Spalte als Textknoten eingefügt, wie im folgenden Beispiel gezeigt:

USE AdventureWorks2022;
GO
SELECT E.BusinessEntityID "@EmpID",
       FirstName "*",
       MiddleName "*",
       LastName "*"
FROM   HumanResources.Employee AS E
  INNER JOIN Person.Person AS P
    ON E.BusinessEntityID = P.BusinessEntityID
WHERE E.BusinessEntityID=1
FOR XML PATH;

Dies ist das Ergebnis:

<row EmpID="1">KenJSánchez</row>

Wenn die Spalte vom Typ xml ist, wird die entsprechende XML-Struktur eingefügt. Die folgende Abfrage gibt beispielsweise "*" als Name der Spalte an, die den XML-Code enthält, der von der XQuery für die Instructions-Spalte zurückgegeben wurde.

SELECT
       ProductModelID,
       Name,
       Instructions.query('declare namespace MI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions"
                /MI:root/MI:Location
              ') as "*"
FROM Production.ProductModel
WHERE ProductModelID=7
FOR XML PATH;

Dies ist das Ergebnis. Der von der XQuery zurückgegebene XML-Code wird ohne Wrapperelement eingefügt.

<row>
  <ProductModelID>7</ProductModelID>
  <Name>HL Touring Frame</Name>
  <MI:Location LocationID="10">...</MI:Location>
  <MI:Location LocationID="20">...</MI:Location>
  ...
</row>

Siehe auch