Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Můžete specifikovat XML datové typy (Data Type Methods) pro XML datovou proměnnou nebo sloupec. Například metoda query() (xml datový typ) vykoná specifikovaný XQuery nad XML instancí. Když tímto způsobem konstruujete XML, můžete chtít přinést hodnotu z ne-XML typu sloupce nebo Transact-SQL proměnné. Tento proces se nazývá vazba relačních dat uvnitř XML.
Pro navázání relačních dat mimo XML uvnitř XML poskytuje SQL Server Database Engine následující pseudofunkce:
sql:column() Function (XQuery) Umožňuje použít hodnoty z relačního sloupce ve vašem XQuery nebo XML DML výrazu.
sql:variable() funkce (XQuery) . Umožňuje použít hodnotu SQL proměnné ve vašem XQuery nebo XML DML výrazu.
Tyto funkce můžete použít s metodami XML datových typů vždy, když chcete zobrazit relační hodnotu uvnitř XML.
Tyto funkce nelze použít k odkazování na data ve sloupcích nebo proměnných typu xml, CLR definovaných uživatelem, datetime, smalldatetime, text, ntext, sql_variant a obrazových typů.
Tato vazba je také určena pouze pro čtení. To znamená, že data nelze psát ve sloupcích, které tyto funkce používají. Například sql:variable("@x")="nějaký výraz" není povolen.
Příklad: dotaz přes domény pomocí sql:variable()
Tento příklad ukazuje, jak sql:variable() umožňuje aplikaci parametrizovat dotaz. ISBN je předáváno pomocí SQL proměnné @isbn. Nahrazením konstanty sql:variable() lze dotaz použít k vyhledávání libovolného ISBN, nejen toho, jehož ISBN je 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() lze použít podobným způsobem a přináší další výhody. Indexy nad sloupcem mohou být použity pro efektivitu, jak rozhodne optimalizátor dotazů založený na nákladech. Také může vypočtený sloupec uložit propagovanou vlastnost.