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

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

USE AdventureWorks2008R2;
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-данные, которые вставляются без закрытия элемента.

<строка>

<ProductModelID>7</ProductModelID>

<Name>HL Touring Frame</Name>

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

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

...

</row>

См. также

Основные понятия