Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Die folgende Abfrage schließt Spalten vom Typ xml ein. Die Abfrage ruft die Produktmodell-ID, den Namen und die Produktionsschritte am ersten Standort aus der Instructions
-Spalte vom Typ xml ab.
Beispiel
USE AdventureWorks2022;
GO
SELECT ProductModelID, Name,
Instructions.query('
declare namespace MI="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
/MI:root/MI:Location[1]/MI:step')
FROM Production.ProductModel
FOR XML RAW ('ProductModelData')
GO
Im Folgenden wird das Ergebnis gezeigt. Die Tabelle speichert nur für einige Produktmodelle Fertigungsanweisungen. Die Fertigungsschritte werden als Unterelemente des <ProductModelData>
-Elements im Ergebnis zurückgegeben.
<ProductModelData ProductModelID="5" Name="HL Mountain Frame" />
<ProductModelData ProductModelID="6" Name="HL Road Frame" />
<ProductModelData ProductModelID="7" Name="HL Touring Frame">
<MI:step> ... </MI:step>
<MI:step> ... </MI:step>
</ProductModelData>
Wenn in der Abfrage ein Spaltenname für die durch die XQuery-Abfrage zurückgegebenen XML-Daten angegeben wird (wie in der folgenden SELECT
-Anweisung angegeben), werden die Produktionsschritte von dem Element umschlossen, das den angegebenen Namen aufweist.
USE AdventureWorks2022;
GO
SELECT ProductModelID, Name,
Instructions.query('
declare namespace MI="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
/MI:root/MI:Location[1]/MI:step') as ManuSteps
FROM Production.ProductModel
FOR XML RAW ('ProductModelData');
GO
Dies ist das Ergebnis:
<ProductModelData ProductModelID="5" Name="HL Mountain Frame" />
<ProductModelData ProductModelID="6" Name="HL Road Frame" />
<ProductModelData ProductModelID="7" Name="HL Touring Frame">
<ManuSteps>
<MI:step ... </MI:step>
<MI:step ... </MI:step>
</ManuSteps>
</ProductModelData>
In der folgenden Abfrage wird die ELEMENTS
-Direktive angegeben. Deshalb ist das zurückgegebene Ergebnis elementzentriert. Die Option XSINIL
, die zusammen mit der ELEMENTS
-Direktive angegeben wird, gibt selbst dann <ManuSteps>
-Elemente zurück, wenn die entsprechende Spalte im Rowset NULL ist.
USE AdventureWorks2022;
GO
SELECT ProductModelID, Name,
Instructions.query('
declare namespace MI="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions"
/MI:root/MI:Location[1]/MI:step
') as ManuSteps
FROM Production.ProductModel
FOR XML RAW ('ProductModelData'), root('MyRoot'), ELEMENTS XSINIL
GO
Dies ist das Ergebnis:
<MyRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
<ProductModelData>
<ProductModelID>6</ProductModelID>
<Name>HL Road Frame</Name>
<ManuSteps xsi:nil="true" />
</ProductModelData>
<ProductModelData>
<ProductModelID>7</ProductModelID>
<Name>HL Touring Frame</Name>
<ManuSteps>
<MI:step ... </MI:step>
<MI:step ...</MI:step>
...
</ManuSteps>
</ProductModelData>
</MyRoot>