Partilhar via


Referência de linguagem Xquery (SQL Server)

Aplica-se: SQL Server

O Transact-SQL oferece suporte a um subconjunto da linguagem XQuery que é usado para consultar o tipo de dados xml . Essa implementação da XQuery está alinhada com o Working Draft de julho de 2004 da 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. 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. Este tópico descreve a semântica e a sintaxe do subconjunto de XQuery com suporte no SQL Server.

Para obter mais informações, consulte a Especificação de Linguagem do W3C XQuery 1.0.

A XQuery é uma linguagem que pode consultar dados XML estruturados ou semiestruturados. Com o suporte ao tipo de dados xml fornecido no Mecanismo de Banco de Dados, os documentos podem ser armazenados em um banco de dados e, em seguida, consultados usando 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. A XQuery opera no modelo de dados XQuery. Essa é uma abstração de documentos XML e de resultados da XQuery podem ser com tipo ou sem-tipo. As informações de tipo são baseadas nos tipos fornecidos pela linguagem de esquema XML da W3C. Se nenhuma informação de tipo estiver disponível, a XQuery controlará os dados como sendo sem-tipo. Isso é semelhante ao modo como a versão 1.0 do XPath trata o XML.

Para consultar uma instância XML armazenada em uma variável ou coluna do tipo xml, use os Métodos de Tipo de Dados xml. Por exemplo, você pode declarar uma variável do tipo xml e consultá-la usando o método query() do tipo de dados xml .

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 do tipo xml na tabela ProductModel no banco de dados 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  

O XQuery inclui a declaração de namespace, declare namespace``AWMI=..., e a expressão de consulta, /AWMI:root/AWMI:Location[@LocationID=10].

Observe que o XQuery é especificado na coluna Instructions do tipo xml . O método query() do tipo de dados xml é usado para especificar o XQuery.

A tabela a seguir lista os tópicos relacionados que podem ajudar a entender a implementação do XQuery no Mecanismo de Banco de Dados.

Tópico Descrição
Dados XML (SQL Server) Explica o suporte para o tipo de dados xmlno Mecanismo de Banco de Dados e os métodos que você pode usar nesse tipo de dados. O tipo de dados xml forma o modelo de dados XQuery de entrada no qual as expressões XQuery são executadas.
Coleções de esquema XML (SQL Server) Descreve quais podem ser os tipos das instâncias XML armazenadas em um banco de dados. Isso significa que você pode associar uma coleção de esquemas XML à coluna de tipo xml . 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.

Observação

A organização dessa seção é baseada na especificação de working draft da XQuery da World Wide Web Consortium (W3C). Alguns dos diagramas fornecidos nesta seção foram obtidos nessa especificação. 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. A especificação W3C está disponível em http://www.w3.org/TR/2004/WD-xquery-20040723.

Nesta seção

Tópico Descrição
Fundamentos de XQuery 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.
Expressões XQuery 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.
Módulos e Prólogos (XQuery) Descreve o prólogo da XQuery.
Funções XQuery em Tipos de Dados XML Descreve uma lista das funções XQuery que têm suporte.
Operadores XQuery em relação ao Tipo de Dados XML Descreve os operadores XQuery que têm suporte.
Exemplos Adicionais de XQueries em relação ao Tipo de Dados XML Fornece exemplos adicionais de XQuery.

Confira também

Dados XML (SQL Server)
Coleções de esquema XML (SQL Server)
Exemplos de importação e exportação em massa de documentos XML (SQL Server)