XQuery-Sprachreferenz (SQL Server)

Anwendungsbereich: JaSQL Server (alle unterstützten Versionen)

Transact-SQLunterstützt eine Teilmenge der XQuery-Sprache, die zum Abfragen des xml-Datentyps verwendet wird. Diese XQuery-Implementierung orientiert sich am Arbeitsentwurf für XQuery (Juli 2004). Diese Sprache wird zurzeit vom W3C (World Wide Web Consortium) unter Mitwirkung aller großen Datenbankhersteller und Microsoft entwickelt. Da die W3C-Spezifikationen möglicherweise überarbeitet werden, bevor eine W3C-Empfehlung ausgesprochen wird, kann sich diese Implementierung von der endgültigen Empfehlung unterscheiden. Dieses Thema beschreibt die Semantik und Syntax der Teilmenge von XQuery, die in SQL Server unterstützt wird.

Weitere Informationen finden Sie in der W3C XQuery 1.0-Sprachspezifikation.

XQuery ist eine Sprache, die strukturierte oder halbstrukturierte XML-Daten abfragen kann. Mit der xml -Datentypunterstützung, die in bereitgestellt wird, können Dokumente in einer Datenbank gespeichert und dann mithilfe von Datenbank-Engine XQuery abgefragt werden.

XQuery basiert auf der vorhandenen XPath-Abfragesprache. Dieser wurde Unterstützung für bessere Iteration, bessere Sortierergebnisse und eine Funktion zum Erstellen des erforderlichen XML hinzugefügt. XQuery wird auf der Grundlage des XQuery-Datenmodells ausgeführt. Dabei handelt es sich um eine Abstraktion von XML-Dokumenten und die XQuery-Ergebnisse, die typisiert oder nicht typisiert sein können. Die Typinformationen basieren auf den von der W3C XML-Schemasprache bereitgestellten Typen. Wenn keine Typisierungsinformationen verfügbar sind, behandelt XQuery die Daten so, als wären sie nicht typisiert. XPath, Version 1.0, verarbeitet XML auf ähnliche Weise.

Zum Abfragen einer XML-Instanz, die in einer Variablen oder Spalte vom Typ xml gespeichert ist, verwenden Sie die xml-Datentypmethoden. Beispielsweise können Sie eine Variable vom Typ xml deklarieren und mithilfe der query()-Methode des xml-Datentyps abfragen.

DECLARE @x xml  
SET @x = '<ROOT><a>111</a></ROOT>'  
SELECT @x.query('/ROOT/a')  

Im folgenden Beispiel wird die Abfrage für die Instructions -Spalte des xml-Typs in der ProductModel-Tabelle in der AdventureWorks-Datenbank angegeben.

SELECT Instructions.query('declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";           
    /AWMI:root/AWMI:Location[@LocationID=10]  
') as Result   
FROM  Production.ProductModel  
WHERE ProductModelID=7  

Die XQuery enthält die Namespacedeklaration , declare namespace``AWMI=... und den Abfrageausdruck /AWMI:root/AWMI:Location[@LocationID=10] .

Beachten Sie, dass die XQuery für die Instructions-Spalte des xml-Typs angegeben wird. Die query()-Methode des xml-Datentyps wird verwendet, um die XQuery anzugeben.

Die folgende Tabelle enthält die verwandten Themen, die das Verständnis der Implementierung von XQuery in Datenbank-Engine vertiefen sollen.

Thema BESCHREIBUNG
XML-Daten (SQL Server) Erläutert die Unterstützung für den xml-Datentyp in und die Datenbank-Engine Methoden, die Sie für diesen Datentyp verwenden können. Der xml-Datentyp bildet das Eingabe-XQuery-Datenmodell, für das die XQuery-Ausdrücke ausgeführt werden.
XML-Schemaauflistungen (SQL Server) Beschreibt, wie die in einer Datenbank gespeicherten XML-Instanzen typisiert werden können. Dies bedeutet, dass Sie der Spalte vom Typ xml eine XML-Schemasammlung zuordnen können. Alle in der Spalte gespeicherten Instanzen werden in der Auflistung anhand des Schemas überprüft und typisiert und stellen die Typinformationen für XQuery bereit.

Hinweis

Die Organisation dieses Abschnitts basiert auf der Arbeitsentwurfspezifikation für XQuery des World Wide Web Consortium (W3C). Einige der in diesem Abschnitt bereitgestellten Diagramme stammen aus dieser Spezifikation. In diesem Abschnitt wird die Microsoft XQuery-Implementierung mit der W3C-Spezifikation verglichen, es werden die Unterschiede zwischen XQuery und W3C beschrieben und die nicht unterstützten W3C-Funktionen genannt. Die W3C-Spezifikation ist unter http://www.w3.org/TR/2004/WD-xquery-20040723 verfügbar.

In diesem Abschnitt

Thema BESCHREIBUNG
XQuery-Grundlagen Stellt eine grundlegende Übersicht über die XQuery-Konzepte und die Auswertung von Ausdrücken (statischer und dynamischer Kontext), die Atomarmachung, effektive boolesche Werte, das XQuery-Typsystem, Sequenztypzuordnung und Fehlerbehandlung zur Verfügung.
XQuery-Ausdrücke Beschreibt primäre XQuery-Ausdrücke, path-Ausdrücke, sequence-Ausdrücke, arithmetische Vergleiche und logische Ausdrücke, die XQuery-Erstellung, FLWOR-Ausdrücke, bedingte und quantifizierte Ausdrücke sowie verschiedene Ausdrücke für Sequenztypen.
Module und Prologs (XQuery-) Beschreibt den XQuery-Prolog.
XQuery-Funktionen für den xml-Datentyp Beschreibt eine Liste der unterstützten XQuery-Funktionen.
XQuery-Operatoren für den xml-Datentyp Beschreibt unterstützte XQuery-Operatoren.
Zusätzliches Beispiel für XQuery-Abfragen für den XML-Datentyp Stellt zusätzliche XQuery-Beispiele bereit.

Weitere Informationen

XML-Daten (SQL Server)
XML-Schemaauflistungen (SQL Server)
Beispiele für den Massenimport und -export von XML-Dokumenten (SQL Server)