Referência de linguagem Xquery (SQL Server)XQuery Language Reference (SQL Server)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Transact-SQLTransact-SQL dá suporte a um subconjunto da linguagem XQuery que é usada para consultar o xml tipo de dados.supports a subset of the XQuery language that is used for querying the xml data type. Essa implementação da XQuery está alinhada com o Working Draft de julho de 2004 da XQuery.This XQuery implementation is aligned with the July 2004 Working Draft of XQuery. Essa linguagem está sendo desenvolvida pela World Wide Web Consortium (W3C), com a participação de todos os principais fornecedores de banco de dados e também da Microsoft.The language is under development by the World Wide Web Consortium (W3C), with the participation of all major database vendors and also Microsoft. Como as especificações da W3C podem passar por revisões futuras antes de se tornarem recomendações da W3C, essa implementação pode ser diferente da recomendação final.Because the W3C specifications may undergo future revisions before becoming a W3C recommendation, this implementation may be different from the final recommendation. Este tópico descreve a semântica e a sintaxe do subconjunto da XQuery com suporte no SQL ServerSQL Server.This topic outlines the semantics and syntax of the subset of XQuery that is supported in SQL ServerSQL Server.

Para obter mais informações, consulte o W3C XQuery 1.0 Language Specification.For more information, see the W3C XQuery 1.0 Language Specification.

A XQuery é uma linguagem que pode consultar dados XML estruturados ou semiestruturados.XQuery is a language that can query structured or semi-structured XML data. Com o xml suporte é fornecido no tipo de dados a Mecanismo de Banco de DadosDatabase Engine, documentos podem ser armazenados em um banco de dados e, em seguida, são consultados por meio do XQuery.With the xml data type support provided in the Mecanismo de Banco de DadosDatabase Engine, documents can be stored in a database and then queried by using XQuery.

A XQuery é baseada na linguagem XPath existente, com suporte adicional para uma melhor iteração, melhores resultados de classificação e com a capacidade de construir o XML necessário.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. A XQuery opera no modelo de dados XQuery.XQuery operates on the XQuery Data Model. Essa é uma abstração de documentos XML e de resultados da XQuery podem ser com tipo ou sem-tipo.This is an abstraction of XML documents, and the XQuery results that can be typed or untyped. As informações de tipo são baseadas nos tipos fornecidos pela linguagem de esquema XML da W3C.The type information is based on the types provided by the W3C XML Schema language. Se nenhuma informação de tipo estiver disponível, a XQuery controlará os dados como sendo sem-tipo.If no typing information is available, XQuery handles the data as untyped. Isso é semelhante ao modo como a versão 1.0 do XPath trata o XML.This is similar to how XPath version 1.0 handles XML.

Para consultar uma instância XML armazenada em uma variável ou coluna de xml tipo, use o métodos de tipo de dados xml.To query an XML instance stored in a variable or column of xml type, you use the xml Data Type Methods. Por exemplo, você pode declarar uma variável de xml de tipo e consultá-lo usando o Query () método da xml tipo de dados.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')  

No exemplo a seguir, a consulta é especificada na coluna Instructions da xml tipo na tabela ProductModel no banco de dados 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="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";           
    /AWMI:root/AWMI:Location[@LocationID=10]  
') as Result   
FROM  Production.ProductModel  
WHERE ProductModelID=7  

A XQuery inclui a declaração de namespace declare namespace``AWMI=...e a expressão 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].

Observe que o XQuery é especificado na coluna Instructions da xml tipo.Note that the XQuery is specified against the Instructions column of xml type. O método Query () dos dados xml tipo é usado para especificar o XQuery.The query() method of the xml data type is used to specify the XQuery.

A tabela a seguir lista os tópicos relacionados que podem ajudar a entender a implementação da XQuery no Mecanismo de Banco de DadosDatabase Engine.The following table lists the related topics that can help in understanding the implementation of XQuery in the Mecanismo de Banco de DadosDatabase Engine.

TópicoTopic DescriçãoDescription
Dados XML (SQL Server)XML Data (SQL Server) Explica o suporte para o xmltipo de dados no Mecanismo de Banco de DadosDatabase Engine e os métodos que você pode usar em relação a esse tipo de dados.Explains the support for the xmldata type in the Mecanismo de Banco de DadosDatabase Engine and the methods you can use against this data type. O xml formulários de dados XQuery de entrada de modelo em que as expressões XQuery são executadas de tipo de dados.The xml data type forms the input XQuery data model on which the XQuery expressions are executed.
Coleções de esquemas XML (SQL Server)XML Schema Collections (SQL Server) Descreve quais podem ser os tipos das instâncias XML armazenadas em um banco de dados.Describes how the XML instances stored in a database can be typed. Isso significa que você pode associar uma coleção de esquemas XML com o xml coluna de tipo.This means you can associate an XML schema collection with the xml type column. Todas as instâncias armazenadas na coluna são validadas e verificadas quanto ao tipo em relação ao esquema na coleção e fornecem a informação de tipo para a 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.

Observação

A organização dessa seção é baseada na especificação de working draft da XQuery da World Wide Web Consortium (W3C).The organization of this section is based on the World Wide Web Consortium (W3C) XQuery working draft specification. Alguns dos diagramas fornecidos nesta seção foram obtidos nessa especificação.Some of the diagrams provided in this section are taken from that specification. Esta seção compara a implementação XQuery da Microsoft com a especificação da W3C, descreve as diferenças entre a XQuery da Microsoft e da W3C e indica quais recursos da W3C não têm suporte.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. A especificação W3C está disponível em http://www.w3.org/TR/2004/WD-xquery-20040723 .The W3C specification is available at http://www.w3.org/TR/2004/WD-xquery-20040723.

Nesta seçãoIn This Section

TópicoTopic DescriçãoDescription
Fundamentos de XQueryXQuery Basics Fornece uma visão geral básica dos conceitos da XQuery, além da avaliação de expressão (contexto estático e dinâmico), atomização, valor booliano efetivo, sistema de tipo XQuery, correspondência de tipo de sequência e tratamento de erros.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.
Expressões XQueryXQuery Expressions Descreve expressões primárias da XQuery, expressões de caminho, expressões de sequência, comparações aritméticas e expressões lógicas, construção da XQuery, expressão FLWOR, expressões quantificadas e condicionais e várias expressões em tipos de sequência.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 e Prólogos (XQuery)Modules and Prologs (XQuery) Descreve o prólogo da XQuery.Describes XQuery prolog.
Funções XQuery em Tipos de Dados XMLXQuery Functions against the xml Data Type Descreve uma lista das funções XQuery que têm suporte.Describes a list of the XQuery functions that are supported.
Operadores XQuery em relação ao Tipo de Dados XMLXQuery Operators Against the xml Data Type Descreve os operadores XQuery que têm suporte.Describes XQuery operators that are supported.
Exemplos Adicionais de XQueries em relação ao Tipo de Dados XMLAdditional Sample XQueries Against the xml Data Type Fornece exemplos adicionais de XQuery.Provides additional XQuery samples.

Consulte tambémSee Also

Dados XML (SQL Server) XML Data (SQL Server)
Coleções de esquemas XML (SQL Server) XML Schema Collections (SQL Server)
Exemplos de importação e exportação em massa de documentos XML (SQL Server)Examples of Bulk Import and Export of XML Documents (SQL Server)