次の方法で共有


ワイルドカード文字として指定された名前を持つ列

指定された列名がワイルドカード文字 (*) の場合、列名が指定されていないかのように、その列の内容が挿入されます。 この列が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 ツリーが挿入されます。 たとえば、次のクエリでは、命令列に対して XQuery によって返される XML を含む列名に "*" を指定します。

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>

こちらもご覧ください

FOR XML で PATH モードを使用する