XQuery-Sprachreferenz (SQL Server)XQuery Language Reference (SQL Server)

DIESES THEMA GILT FÜR: jaSQL Server (ab 2012)neinAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Transact-SQLTransact-SQLunterstützt eine Teilmenge der XQuery-Sprache, die für die Abfrage verwendet, wird die Xml -Datentyp. supports a subset of the XQuery language that is used for querying the xml data type. Diese XQuery-Implementierung orientiert sich am Arbeitsentwurf für XQuery (Juli 2004).This XQuery implementation is aligned with the July 2004 Working Draft of XQuery. Diese Sprache wird zurzeit vom W3C (World Wide Web Consortium) unter Mitwirkung aller großen Datenbankhersteller und Microsoft entwickelt.The language is under development by the World Wide Web Consortium (W3C), with the participation of all major database vendors and also Microsoft. Da die W3C-Spezifikationen möglicherweise überarbeitet werden, bevor eine W3C-Empfehlung ausgesprochen wird, kann sich diese Implementierung von der endgültigen Empfehlung unterscheiden.Because the W3C specifications may undergo future revisions before becoming a W3C recommendation, this implementation may be different from the final recommendation. Dieses Thema beschreibt die Semantik und Syntax der Teilmenge von XQuery, die in SQL ServerSQL Server unterstützt wird.This topic outlines the semantics and syntax of the subset of XQuery that is supported in SQL ServerSQL Server.

Weitere Informationen finden Sie unter der W3C XQuery 1.0-Sprachspezifikation.For more information, see the W3C XQuery 1.0 Language Specification.

XQuery ist eine Sprache, die strukturierte oder halbstrukturierte XML-Daten abfragen kann.XQuery is a language that can query structured or semi-structured XML data. Mit der Xml -Datentyp-Unterstützung der DatenbankmodulDatabase Engine, Dokumente in einer Datenbank gespeichert und dann mithilfe von XQuery abgefragt werden können.With the xml data type support provided in the DatenbankmodulDatabase Engine, documents can be stored in a database and then queried by using XQuery.

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 is based on the existing XPath query language, with support added for better iteration, better sorting results, and the ability to construct the necessary XML. XQuery wird auf der Grundlage des XQuery-Datenmodells ausgeführt.XQuery operates on the XQuery Data Model. Dabei handelt es sich um eine Abstraktion von XML-Dokumenten und die XQuery-Ergebnisse, die typisiert oder nicht typisiert sein können.This is an abstraction of XML documents, and the XQuery results that can be typed or untyped. Die Typinformationen basieren auf den von der W3C XML-Schemasprache bereitgestellten Typen.The type information is based on the types provided by the W3C XML Schema language. Wenn keine Typisierungsinformationen verfügbar sind, behandelt XQuery die Daten so, als wären sie nicht typisiert.If no typing information is available, XQuery handles the data as untyped. XPath, Version 1.0, verarbeitet XML auf ähnliche Weise.This is similar to how XPath version 1.0 handles XML.

Zum Abfragen einer XML-Instanz, die in einer Variable oder Spalte gespeicherten Xml , verwenden Sie die Xml-Datentypmethoden.To query an XML instance stored in a variable or column of xml type, you use the xml Data Type Methods. Sie können z. B. eine Variable deklarieren Xml geben und es mithilfe von Abfragen die query() Methode der Xml -Datentyp.For example, you can declare a variable of xml type and query it by using the query() method of the xml data type.

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

Im folgenden Beispiel wird die Abfrage angegeben, für die Instructions-Spalte der Xml Typ in der ProductModel-Tabelle der AdventureWorks-Datenbank.In the following example, the query is specified against the Instructions column of xml type in ProductModel table in the AdventureWorks database.

SELECT Instructions.query('declare namespace AWMI="http://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 umfasst die Namespacedeklaration declare namespace``AWMI=..., und der Abfrageausdruck /AWMI:root/AWMI:Location[@LocationID=10].The XQuery includes the namespace declaration, declare namespace``AWMI=..., and the query expression, /AWMI:root/AWMI:Location[@LocationID=10].

Beachten Sie, dass die XQuery, für die Instructions-Spalte der angegeben wird Xml Typ.Note that the XQuery is specified against the Instructions column of xml type. Die Query()-Methode der XML-Typ zum Angeben der XQuery verwendet wird.The query() method of the xml data type is used to specify the XQuery.

Die folgende Tabelle enthält die verwandten Themen, die das Verständnis der Implementierung von XQuery in DatenbankmodulDatabase Engine vertiefen sollen.The following table lists the related topics that can help in understanding the implementation of XQuery in the DatenbankmodulDatabase Engine.

ThemaTopic DescriptionDescription
XML-Daten (SQL Server)XML Data (SQL Server) Erläutert die Unterstützung für die Xml-Datentyp in der DatenbankmodulDatabase Engine und die Methoden, die Sie für diesen Datentyp verwenden können.Explains the support for the xmldata type in the DatenbankmodulDatabase Engine and the methods you can use against this data type. Die Xml -Datentyp bildet das XQuery-Eingabedaten zu modellieren, auf die die XQuery-Ausdrücke ausgeführt werden.The xml data type forms the input XQuery data model on which the XQuery expressions are executed.
XML-Schemaauflistungen (SQL Server)XML Schema Collections (SQL Server) Beschreibt, wie die in einer Datenbank gespeicherten XML-Instanzen typisiert werden können.Describes how the XML instances stored in a database can be typed. Dies bedeutet, Sie können eine XML-schemaauflistung mit Zuordnen der Xml Typspalte.This means you can associate an XML schema collection with the xml type column. 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.All the instances stored in the column are validated and typed against the schema in the collection and provide the type information for XQuery.

Hinweis

Die Organisation dieses Abschnitts basiert auf der Arbeitsentwurfspezifikation für XQuery des World Wide Web Consortium (W3C).The organization of this section is based on the World Wide Web Consortium (W3C) XQuery working draft specification. Einige der in diesem Abschnitt bereitgestellten Diagramme stammen aus dieser Spezifikation.Some of the diagrams provided in this section are taken from that specification. 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.This section compares the Microsoft XQuery implementation to the W3C specification, describes how Microsoft XQuery is different from the W3C and indicates what W3C features are not supported. Die W3C-Spezifikation finden Sie unter http://www.w3.org/TR/2004/WD-xquery-20040723.The W3C specification is available at http://www.w3.org/TR/2004/WD-xquery-20040723.

In diesem AbschnittIn This Section

ThemaTopic DescriptionDescription
XQuery Basics (XQuery-Grundlagen)XQuery Basics 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.Provides a basic overview of XQuery concepts, and also the expression evaluation (static and dynamic context), atomization, effective Boolean value, XQuery type system, sequence type matching, and error handling.
XQuery Expressions (XQuery-Ausdrücke)XQuery Expressions 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.Describes XQuery primary expressions, path expressions, sequence expressions, arithmetic comparison and logical expressions, XQuery construction, FLWOR expression, conditional and quantified expressions, and various expressions on sequence types.
Module und Prologe ( XQuery )Modules and Prologs (XQuery) Beschreibt den XQuery-Prolog.Describes XQuery prolog.
XQuery Functions against the xml Data Type (XQuery-Funktionen für den xml-Datentyp)XQuery Functions against the xml Data Type Beschreibt eine Liste der unterstützten XQuery-Funktionen.Describes a list of the XQuery functions that are supported.
XQuery Operators Against the xml Data Type (XQuery-Operatoren für den xml-Datentyp)XQuery Operators Against the xml Data Type Beschreibt unterstützte XQuery-Operatoren.Describes XQuery operators that are supported.
Additional Sample XQueries Against the xml Data Type (Zusätzliches Beispiel für XQuery-Abfragen für den XML-Datentyp)Additional Sample XQueries Against the xml Data Type Stellt zusätzliche XQuery-Beispiele bereit.Provides additional XQuery samples.

Siehe auchSee Also

XML-Daten (SQL Server) XML Data (SQL Server)
XML-Schemaauflistungen (SQL Server) XML Schema Collections (SQL Server)
Beispiele für den Massenimport und -export von XML-Dokumenten (SQL Server)Examples of Bulk Import and Export of XML Documents (SQL Server)