Referencia del lenguaje XQuery (SQL Server)

Se aplica a:SQL Server

Transact-SQL admite un subconjunto del lenguaje XQuery que se usa para consultar el tipo de datos xml . Esta implementación de XQuery se basa en el borrador de trabajo de XQuery de julio de 2004. 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. 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. En este tema se describe la semántica y la sintaxis del subconjunto de XQuery que se admite en SQL Server.

Para obtener más información, vea especificación del lenguaje W3C XQuery 1.0.

XQuery es un lenguaje que permite realizar consultas en datos XML estructurados o semiestructurados. Con la compatibilidad con el tipo de datos xml proporcionada en el motor de base de datos, los documentos se pueden almacenar en una base de datos y, a continuación, consultarlos mediante 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 opera según el modelo de datos XQuery. Se trata de una abstracción de documentos XML, y los resultados de XQuery pueden tener tipo o no tenerlo. La información del tipo se basa en los tipos proporcionados por el lenguaje para esquemas XML del W3C. Si no se dispone de información de tipos, XQuery trata los datos como sin tipo. Esto es similar al modo en que XPath versión 1.0 trata el XML.

Para consultar una instancia XML almacenada en una variable o columna de tipo xml , use los métodos de tipo de datos xml. Por ejemplo, puede declarar una variable de tipo xml y consultarla mediante el método query() del tipo de datos xml .

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 del tipo xml de la tabla ProductModel de la base de datos AdventureWorks.

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  

XQuery incluye la declaración de espacio de nombres , declare namespace``AWMI=...y la expresión de consulta , /AWMI:root/AWMI:Location[@LocationID=10].

Tenga en cuenta que XQuery se especifica en la columna Instructions del tipo xml . El método query() del tipo de datos xml se usa para especificar XQuery.

En la tabla siguiente se enumeran los temas relacionados que pueden ayudar a comprender la implementación de XQuery en el motor de base de datos.

Tema Descripción
Datos XML (SQL Server) Explica la compatibilidad con el tipo de datos xmlen el motor de base de datos y los métodos que puede usar con este tipo de datos. El tipo de datos xml forma el modelo de datos XQuery de entrada en el que se ejecutan las expresiones XQuery.
Colecciones de esquemas XML (SQL Server) Describe cómo se puede asignar un tipo a las instancias XML almacenadas en una base de datos. Esto significa que puede asociar una colección de esquemas XML a la columna de tipo xml . 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.

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). Algunos de los diagramas que se ofrecen en esta sección se han tomado de esas especificaciones. 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. La especificación W3C está disponible en http://www.w3.org/TR/2004/WD-xquery-20040723.

En esta sección

Tema Descripción
Conceptos básicos de XQuery 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.
Expresiones XQuery 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.
Módulos y prólogos (XQuery) Describe el prólogo de las consultas XQuery.
Funciones de XQuery con el tipo de datos xml Describe una lista de las funciones de XQuery admitidas.
Operadores XQuery con el tipo de datos XML Describe los operadores XQuery admitidos.
Ejemplos adicionales de consultas XQuery con el tipo de datos XML Proporciona más ejemplos de XQuery.

Consulte también

Datos XML (SQL Server)
Colecciones de esquemas XML (SQL Server)
Ejemplos de importación y exportación de forma masiva documentos XML (SQL Server)