Referencia del lenguaje XQuery (SQL Server)XQuery Language Reference (SQL Server)

SE APLICA A: síSQL Server (a partir de 2012) noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (starting with 2012) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Transact-SQLTransact-SQL admite un subconjunto del lenguaje XQuery que se usa para consultar el xml tipo de datos.supports a subset of the XQuery language that is used for querying the xml data type. Esta implementación de XQuery se basa en el borrador de trabajo de XQuery de julio de 2004.This XQuery implementation is aligned with the July 2004 Working Draft of XQuery. El lenguaje está siendo desarrollado por el World Wide Web Consortium (W3C), con la participación de los principales proveedores de bases de datos, incluido Microsoft.The language is under development by the World Wide Web Consortium (W3C), with the participation of all major database vendors and also Microsoft. Dado que las especificaciones del W3C pueden someterse a futuras revisiones antes de convertirse en recomendaciones del W3C, esta implementación puede ser distinta de la recomendación final.Because the W3C specifications may undergo future revisions before becoming a W3C recommendation, this implementation may be different from the final recommendation. En este tema se define de forma general la semántica y la sintaxis del subconjunto de XQuery admitido en SQL ServerSQL Server.This topic outlines the semantics and syntax of the subset of XQuery that is supported in SQL ServerSQL Server.

Para obtener más información, consulte el especificación del lenguaje W3C XQuery 1.0.For more information, see the W3C XQuery 1.0 Language Specification.

XQuery es un lenguaje que permite realizar consultas en datos XML estructurados o semiestructurados.XQuery is a language that can query structured or semi-structured XML data. Con el xml tipo de datos de soporte técnico proporcionado en el Motor de base de datosDatabase Engine, documentos se pueden almacenar en una base de datos y, a continuación, consultarse mediante XQuery.With the xml data type support provided in the Motor de base de datosDatabase Engine, documents can be stored in a database and then queried by using XQuery.

XQuery se basa en el lenguaje para consultas XPath existente, con un incremento de la compatibilidad para lograr una mejor iteración, mejores resultados de la ordenación y la posibilidad de generar el XML necesario.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 opera según el modelo de datos XQuery.XQuery operates on the XQuery Data Model. Se trata de una abstracción de documentos XML, y los resultados de XQuery pueden tener tipo o no tenerlo.This is an abstraction of XML documents, and the XQuery results that can be typed or untyped. La información del tipo se basa en los tipos proporcionados por el lenguaje para esquemas XML del W3C.The type information is based on the types provided by the W3C XML Schema language. Si no se dispone de información de tipos, XQuery trata los datos como sin tipo.If no typing information is available, XQuery handles the data as untyped. Esto es similar al modo en que XPath versión 1.0 trata el XML.This is similar to how XPath version 1.0 handles XML.

Para consultar una instancia XML almacenada en una variable o columna de xml tipo, que se usa el métodos del tipo de datos xml.To query an XML instance stored in a variable or column of xml type, you use the xml Data Type Methods. Por ejemplo, puede declarar una variable de xml escriba y realiza consultas mediante el uso de la query() método de la xml tipo de datos.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')  

En el ejemplo siguiente, la consulta se especifica en la columna Instructions de xml tipo en la tabla ProductModel en la base de datos AdventureWorks.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  

La consulta XQuery incluye la declaración de espacio de nombres, declare namespace``AWMI=...y la expresión de consulta, /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].

Tenga en cuenta que la consulta XQuery se especifica en la columna Instructions de xml tipo.Note that the XQuery is specified against the Instructions column of xml type. El método query() de los datos xml de tipo se usa para especificar la expresión XQuery.The query() method of the xml data type is used to specify the XQuery.

La siguiente tabla enumera los temas relacionados que pueden ayudar a comprender la implementación de XQuery en Motor de base de datosDatabase Engine.The following table lists the related topics that can help in understanding the implementation of XQuery in the Motor de base de datosDatabase Engine.

TemaTopic DescripciónDescription
Datos XML (SQL Server)XML Data (SQL Server) Explica la compatibilidad con la xmltipo de datos en el Motor de base de datosDatabase Engine y los métodos que puede usar con este tipo de datos.Explains the support for the xmldata type in the Motor de base de datosDatabase Engine and the methods you can use against this data type. El xml formularios modelo los datos de XQuery de entrada en el que se ejecutan las expresiones XQuery del tipo de datos.The xml data type forms the input XQuery data model on which the XQuery expressions are executed.
Colecciones de esquemas XML (SQL Server)XML Schema Collections (SQL Server) Describe cómo se puede asignar un tipo a las instancias XML almacenadas en una base de datos.Describes how the XML instances stored in a database can be typed. Esto significa que puede asociar una colección de esquemas XML con el xml columna de tipo.This means you can associate an XML schema collection with the xml type column. Todas las instancias almacenadas en la columna se validan y reciben un tipo según el esquema de la colección y proporcionan la información de tipos para XQuery.All the instances stored in the column are validated and typed against the schema in the collection and provide the type information for XQuery.

Nota

La organización de esta sección se basa en las especificaciones del borrador de trabajo de XQuery del World Wide Web Consortium (W3C).The organization of this section is based on the World Wide Web Consortium (W3C) XQuery working draft specification. Algunos de los diagramas que se ofrecen en esta sección se han tomado de esas especificaciones.Some of the diagrams provided in this section are taken from that specification. En esta sección, se compara la implementación de Microsoft XQuery con las especificaciones del W3C, se describe en qué se diferencia Microsoft XQuery del W3C y se indican las características del W3C que no se admiten.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. La especificación W3C está disponible en http://www.w3.org/TR/2004/WD-xquery-20040723 .The W3C specification is available at http://www.w3.org/TR/2004/WD-xquery-20040723.

En esta secciónIn This Section

TemaTopic DescripciónDescription
Conceptos básicos de XQueryXQuery Basics Proporciona una visión general básica de los conceptos de XQuery, así como de la evaluación de expresiones (contexto estático y dinámico), la atomización, el valor booleano efectivo, el sistema de tipos XQuery, la coincidencia de tipos de secuencias y el control de errores.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.
Expresiones XQueryXQuery Expressions Describe las expresiones principales de XQuery, expresiones de rutas de acceso, expresiones de secuencias, expresiones de comparación aritmética y lógicas, construcción de XQuery, expresión FLWOR, expresiones condicionales y cuantificadas, y diversas expresiones sobre tipos de secuencias.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.
Módulos y prólogos (XQuery)Modules and Prologs (XQuery) Describe el prólogo de las consultas XQuery.Describes XQuery prolog.
Funciones de XQuery con el tipo de datos xmlXQuery Functions against the xml Data Type Describe una lista de las funciones de XQuery admitidas.Describes a list of the XQuery functions that are supported.
Operadores XQuery con el tipo de datos xmlXQuery Operators Against the xml Data Type Describe los operadores XQuery admitidos.Describes XQuery operators that are supported.
Ejemplos adicionales de consultas XQuery con el tipo de datos xmlAdditional Sample XQueries Against the xml Data Type Proporciona más ejemplos de XQuery.Provides additional XQuery samples.

Vea tambiénSee Also

Datos XML (SQL Server) XML Data (SQL Server)
Colecciones de esquemas XML (SQL Server) XML Schema Collections (SQL Server)
Ejemplos de importación y exportación en bloque de documentos XML (SQL Server)Examples of Bulk Import and Export of XML Documents (SQL Server)