Dela via


XQuery Language Reference (SQL Server)

gäller för:SQL Server

Transact-SQL stöder en delmängd av det XQuery-språk som används för att fråga xml-datatypen . Den här XQuery-implementeringen är anpassad till XQuerys arbetsutkast från juli 2004. Språket är under utveckling av World Wide Web Consortium (W3C), med deltagande av alla större databasleverantörer och även Microsoft. Eftersom W3C-specifikationerna kan genomgå framtida revisioner innan de blir en W3C-rekommendation kan den här implementeringen skilja sig från den slutliga rekommendationen. Det här avsnittet beskriver semantiken och syntaxen för den delmängd av XQuery som stöds i SQL Server.

Mer information finns i språkspecifikationen för W3C XQuery 1.0.

XQuery är ett språk som kan köra frågor mot strukturerade eller halvstrukturerade XML-data. Med stöd för XML-datatypen i databasmotorn kan dokument lagras i en databas och sedan frågas med hjälp av XQuery.

XQuery baseras på det befintliga XPath-frågespråket, med stöd för bättre iteration, bättre sorteringsresultat och möjligheten att konstruera nödvändig XML. XQuery fungerar på XQuery-datamodellen. Det här är en abstraktion av XML-dokument och XQuery-resultat som kan skrivas eller vara otypade. Typinformationen baseras på de typer som tillhandahålls av W3C XML-schemaspråket. Om ingen typinformation är tillgänglig hanterar XQuery data som otypade. Detta liknar hur XPath version 1.0 hanterar XML.

Om du vill köra frågor mot en XML-instans som lagras i en variabel eller kolumn av XML-typ använder du xml-datatypsmetoderna. Du kan till exempel deklarera en variabel av xml-typ och köra frågor mot den med hjälp av metoden query() för xml-datatypen .

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

I följande exempel anges frågan mot kolumnen Instruktioner av xml-typ i tabellen ProductModel i databasen 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 innehåller namnområdesdeklarationen , declare namespace``AWMI=...och frågeuttrycket , /AWMI:root/AWMI:Location[@LocationID=10].

Observera att XQuery anges mot kolumnen Instruktioner av xml-typ . Metoden query() för xml-datatypen används för att ange XQuery.

I följande tabell visas de relaterade ämnen som kan hjälpa dig att förstå implementeringen av XQuery i databasmotorn.

Ämne Beskrivning
XML-data (SQL Server) Förklarar stödet för xml-datatypen i databasmotorn och de metoder som du kan använda mot den här datatypen. Xml-datatypen utgör den XQuery-datamodell som XQuery-uttryck körs på.
XML-schemasamlingar (SQL Server) Beskriver hur XML-instanserna som lagras i en databas kan skrivas. Det innebär att du kan associera en XML-schemasamling med kolumnen xml-typ . Alla instanser som lagras i kolumnen verifieras och skrivs mot schemat i samlingen och anger typinformationen för XQuery.

Anmärkning

Organisationen av det här avsnittet baseras på W3C (World Wide Web Consortium) XQuery working draft specification. Några av diagrammen i det här avsnittet är hämtade från den specifikationen. Det här avsnittet jämför Microsoft XQuery-implementeringen med W3C-specifikationen, beskriver hur Microsoft XQuery skiljer sig från W3C och anger vilka W3C-funktioner som inte stöds. W3C-specifikationen finns på http://www.w3.org/TR/2004/WD-xquery-20040723.

I det här avsnittet

Ämne Beskrivning
grunderna i XQuery Ger en grundläggande översikt över XQuery-begrepp och även uttrycksutvärdering (statisk och dynamisk kontext), atomisering, effektivt booleskt värde, XQuery-typsystem, matchning av sekvenstyp och felhantering.
XQuery-uttryck Beskriver primära XQuery-uttryck, sökvägsuttryck, sekvensuttryck, aritmetiska jämförelser och logiska uttryck, XQuery-konstruktion, FLWOR-uttryck, villkorsstyrda och kvantifierade uttryck samt olika uttryck för sekvenstyper.
Moduler och prologer (XQuery) Beskriver XQuery-prolog.
XQuery Functions mot xml-datatypen Beskriver en lista över de XQuery-funktioner som stöds.
XQuery-operatorer mot xml-datatypen Beskriver XQuery-operatorer som stöds.
Ytterligare XQueries-exempel mot xml-datatypen Innehåller ytterligare XQuery-exempel.

Se även

XML-data (SQL Server)
XML-schemasamlingar (SQL Server)
Exempel på massimport och export av XML-dokument (SQL Server)