Riferimento al linguaggio XQuery (SQL Server)

Si applica a:SQL Server

Transact-SQL supporta un subset del linguaggio XQuery usato per eseguire query sul tipo di dati xml . Questa implementazione di XQuery è allineata con le specifiche Working Draft di XQuery del luglio 2004. Il linguaggio è sviluppato da WC3 (World Wide Web Consortium), con la partecipazione di tutti i principali fornitori di database e di Microsoft. Poiché le specifiche W3C sono soggette a modifiche prima di diventare raccomandazioni ufficiali, questa implementazione può essere diversa dalla raccomandazione W3C finale. Questo argomento descrive la semantica e la sintassi del subset di XQuery supportato in SQL Server.

Per altre informazioni, vedere Specifica del linguaggio W3C XQuery 1.0.

Il linguaggio XQuery consente di eseguire query su dati XML strutturati e semistrutturati. Con il supporto del tipo di dati xml fornito nel motore di database, i documenti possono essere archiviati in un database e quindi sottoposti a query tramite XQuery.

Il linguaggio XQuery è basato sul linguaggio di query XPath esistente e supporta inoltre miglioramenti per le iterazioni e l'ordinamento, nonché la possibilità di costruire il codice XML necessario. XQuery opera sul modello di dati XQuery. Si tratta di un modello di astrazione dei documenti XML e i risultati XQuery possono essere tipizzati o non tipizzati. Le informazioni sui tipi sono basate sui tipi definiti nelle specifiche W3C per il linguaggio XML Schema. Se non sono disponibili informazioni di tipizzazione, XQuery gestisce i dati come non tipizzati, analogamente al modo in cui XPath versione 1.0 gestisce i dati XML.

Per eseguire query su un'istanza XML archiviata in una variabile o in una colonna di tipo xml , utilizzare i metodi con tipo di dati xml. Ad esempio, è possibile dichiarare una variabile di tipo xml ed eseguirne una query usando il metodo query() del tipo di dati xml .

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

Nell'esempio seguente la query viene specificata sulla colonna Instructions di tipo xml nella tabella ProductModel nel database 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 include la dichiarazione dello spazio dei nomi , declare namespace``AWMI=...e l'espressione di query , /AWMI:root/AWMI:Location[@LocationID=10].

Si noti che xQuery viene specificato nella colonna Istruzioni di tipo xml . Il metodo query() del tipo di dati xml viene utilizzato per specificare XQuery.

Nella tabella seguente sono elencati gli argomenti correlati che consentono di comprendere l'implementazione di XQuery nel motore di database.

Argomento Descrizione
Dati XML (SQL Server) Viene illustrato il supporto per il tipo di dati xmlnel motore di database e i metodi che è possibile utilizzare per questo tipo di dati. Il tipo di dati xml costituisce il modello di dati XQuery di input in cui vengono eseguite le espressioni XQuery.
Raccolte di XML Schema (SQL Server) Descrive le procedure per tipizzare le istanze XML archiviate in un database, Ciò significa che è possibile associare una raccolta di XML Schema alla colonna di tipo xml . Tutte le istanze archiviate nella colonna vengono convalidate e tipizzate rispetto allo schema della raccolta e forniscono le informazioni sul tipo per XQuery.

Nota

L'organizzazione di questa sezione è basata sulle specifiche W3C (World Wide Web Consortium ) per XQuery. Alcuni dei diagrammi disponibili in questa sezione provengono da questa specifica. In questa sezione l'implementazione Microsoft di XQuery viene confrontata alla specifica W3C, vengono descritte le differenze fra Microsoft XQuery e la specifica W3C e vengono illustrate le caratteristiche W3C non supportate. La specifica W3C è disponibile in http://www.w3.org/TR/2004/WD-xquery-20040723.

In questa sezione

Argomento Descrizione
Nozioni fondamentali su XQuery Contiene una panoramica di base sui concetti relativi a XQuery, valutazione dell'espressione (contesto statico e dinamico), atomizzazione, valore booleano effettivo, sistema di tipi XQuery, corrispondenza del tipo di sequenza e gestione degli errori.
Espressioni XQuery Descrive le espressioni primarie XQuery, espressioni di percorso, espressioni di sequenza, espressioni di confronto aritmetico e logiche, costruzione XQuery, espressione FLWOR, espressioni condizionali e quantificate e diverse espressioni TypeSequence.
Moduli e prologhi (XQuery) Descrive il prologo della XQuery.
Funzioni XQuery per il tipo di dati XML Contiene un elenco delle funzioni XQuery supportate.
Operatori di XQuery per il tipo di dati xml Descrive gli operatori XQuery supportati.
Query XQuery di esempio aggiuntive per il tipo di dati xml Contiene altri esempi di XQuery.

Vedi anche

Dati XML (SQL Server)
Raccolte di XML Schema (SQL Server)
Esempi di importazione ed esportazione bulk di documenti XML (SQL Server)