Freigeben über


Spalten mit als Platzhalterzeichen angegebenen Namen

Wenn der angegebene Spaltenname ein Platzhalterzeichen (*) ist, wird der Inhalt dieser Spalte eingefügt, als ob kein Spaltenname angegeben ist. Wenn es sich bei dieser Spalte um eine Spaltexml ohne Typ handelt, wird der Spalteninhalt als Textknoten eingefügt, wie im folgenden Beispiel gezeigt:

USE AdventureWorks2012;  
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 xml Typ ist, wird die entsprechende XML-Struktur eingefügt. Die folgende Abfrage gibt z. B. "*" für den Spaltennamen an, der den von der XQuery zurückgegebenen XML-Code für die Spalte "Anweisungen" enthält.

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;   
GO  

Dies ist das Ergebnis. Der von XQuery zurückgegebene XML-Code wird ohne Umbruchelement 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

Verwenden des PATH-Modus mit FOR XML