Поделиться через


Столбцы с именем, заданным в виде символа-шаблона

Если имя столбца содержит символ-шаблон (*), содержимое этого столбца вставляется, как будто имя не указано совсем. Если этот столбец имеет тип, отличный от xml, содержимое столбца вставляется в качестве текстового узла, как это показано в следующем примере:

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;  

Результат:

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

Если столбец имеет тип -xml, вставляется соответствующее дерево XML. Например, в следующем запросе столбец, содержащий XML-данные, возвращенные в результате запроса на языке XQuery к столбцу Instructions, имеет имя «*».

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  

Результат. Запрос на языке XQuery возвращает XML-данные, которые вставляются без закрытия элемента.

<row>

<ProductModelID>7</ProductModelID>

<Name>HL Touring Frame</Name>

<MI:Location LocationID="10">...</MI:Location>

<MI:Location LocationID="20">...</MI:Location>

...

</row>

См. также:

Использование режима PATH совместно с FOR XML