Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Du kan specificera xml Data Type Methods mot en xml-datatypvariabel eller kolumn. Till exempel exekverar query()-metoden (xml Data Type) den specificerade XQuery mot en XML-instans. När du konstruerar XML på detta sätt kan du vilja ta in ett värde från en kolumn av icke-XML-typ eller en Transact-SQL variabel. Denna process kallas att binda relationsdata inom XML.
För att binda den icke-XML-relationella datan inom XML tillhandahåller SQL Server Database Engine följande pseudofunktioner:
sql:column() Funktion (XQuery) Låter dig använda värdena från en relationskolumn i ditt XQuery- eller XML DML-uttryck.
sql:variable() Funktion (XQuery). Låter dig använda värdet av en SQL-variabel i ditt XQuery- eller XML DML-uttryck.
Du kan använda dessa funktioner med xml-datatypmetoder när du vill exponera ett relationsvärde i XML.
Du kan inte använda dessa funktioner för att referera data i kolumner eller variabler av xml, CLR-användardefinierade typer, datetime, smalldatetime, text, ntext, sql_variant och bildtyper .
Dessutom är denna bindning avsedd för skrivskydd. Det vill säga, du kan inte skriva data i kolumner som använder dessa funktioner. Till exempel är sql:variable("@x")="något uttryck" inte tillåtet.
Exempel: Cross-domain Query med sql:variable()
Detta exempel visar hur sql:variable() kan göra det möjligt för en applikation att parametrisera en fråga. ISBN:et skickas in med hjälp av en SQL-variabel @isbn. Genom att ersätta konstanten med sql:variable() kan frågan användas för att söka efter vilket ISBN som helst och inte bara det vars ISBN är 0-7356-1588-2.
DECLARE @isbn VARCHAR(20)
SET @isbn = '0-7356-1588-2'
SELECT xCol
FROM T
WHERE xCol.exist ('/book/@ISBN[. = sql:variable("@isbn")]') = 1
sql:column() kan användas på liknande sätt och ger ytterligare fördelar. Index över kolumnen kan användas för effektivitet, vilket bestäms av den kostnadsbaserade frågeoptimeraren. Dessutom kan den beräknade kolumnen lagra en promoverad egenskap.