Freigeben über


XQuery-Sprachreferenz (SQL Server)

Gilt für:SQL Server

Transact-SQL unterstü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. In diesem Thema werden die Semantik und Syntax der Teilmenge von XQuery beschrieben, 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 in der Datenbank-Engine bereitgestellten XML-Datentypunterstützung können Dokumente in einer Datenbank gespeichert und dann mithilfe von 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.

Um eine XML-Instanz abzufragen, die in einer Variablen oder Spalte des XML-Typs gespeichert ist, verwenden Sie die xml-Datentypmethoden. Beispielsweise können Sie eine Variable vom typ xml deklarieren und mit 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 Spalte Anweisungen 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-Datei enthält die Namespacedeklaration , declare namespace``AWMI=...und den Abfrageausdruck /AWMI:root/AWMI:Location[@LocationID=10].

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

In der folgenden Tabelle sind die verwandten Themen aufgeführt, die ihnen helfen können, die Implementierung von XQuery in der Datenbank-Engine zu verstehen.

Thema BESCHREIBUNG
XML-Daten (SQL Server) Erläutert die Unterstützung für den xml-Datentypin Datenbank-Engine und die Methoden, die Sie für diesen Datentyp verwenden können. Der xml-Datentyp bildet das XQuery-Eingabedatenmodell, 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 xml-Typ eine XML-Schemaauflistung 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-20040723verfü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.
Modules and Prologs (XQuery) (Module und Prologe (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)