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
Režim FOR XML může být RAW, AUTO, EXPLICIT nebo PATH. Určuje tvar výsledného XML.
Důležité
Direktiva XMLDATA pro možnost FOR XML je zastaralá. Generování XSD použijte v případě režimů RAW a AUTO. V režimu EXPLICT neexistuje žádná náhrada direktivy XMLDATA. Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.
Syntaxe
Následuje základní syntaxe popsaná v klauzuli FOR (Transact-SQL).
[ FOR { BROWSE | <XML> } ]
<XML> ::=
XML
{
{ RAW [ ('ElementName') ] | AUTO }
[
<CommonDirectives>
[ , { XMLDATA | XMLSCHEMA [ ('TargetNameSpaceURI') ]} ]
[ , ELEMENTS [ XSINIL | ABSENT ]
]
| EXPLICIT
[
<CommonDirectives>
[ , XMLDATA ]
]
| PATH [ ('ElementName') ]
[
<CommonDirectives>
[ , ELEMENTS [ XSINIL | ABSENT ] ]
]
}
<CommonDirectives> ::=
[ , BINARY BASE64 ]
[ , TYPE ]
[ , ROOT [ ('RootName') ] ]
Arguments
RAW [('ElementName')]
Vezme výsledek dotazu a transformuje každý řádek v sadě výsledků do elementu XML, který má obecný identifikátor , <row />jako značku elementu. Volitelně můžete zadat název prvku řádku při použití této direktivy. Výsledný kód XML použije zadaný ElementName jako prvek řádku vygenerovaný pro každý řádek. Další informace naleznete v tématu Použití REŽIMU RAW s FOR XML.
AUTO
Vrátí výsledky dotazu v jednoduchém vnořeném stromu XML. Každá tabulka v klauzuli FROM, pro kterou je v klauzuli SELECT uveden alespoň jeden sloupec, je reprezentována jako element XML. Sloupce uvedené v klauzuli SELECT jsou mapovány na příslušné atributy elementu. Další informace naleznete v tématu Použití automatického režimu s jazykem XML.
EXPLICITNÍ
Určuje, že tvar výsledného stromu XML je definován explicitně. Pomocí tohoto režimu musí být dotazy vytvořeny určitým způsobem, aby byly další informace o požadovaném vnoření explicitně specifikovány. Další informace naleznete v tématu Použití explicitního režimu s jazykem XML.
CESTA
Poskytuje jednodušší způsob, jak kombinovat prvky a atributy a zavést další vnoření pro reprezentaci složitých vlastností. K vytvoření tohoto typu XML ze sady řádků můžete použít dotazy v režimu FOR XML EXPLICIT, ale režim PATH poskytuje jednodušší alternativu k pravděpodobně těžkopádným dotazům v režimu EXPLICIT. Režim PATH společně s možností psát vnořené dotazy FOR XML a direktivu TYPE pro vrácení instancí typu XML umožňuje psát dotazy s menší složitostí. Nabízí alternativu k psaní většiny dotazů v režimu EXPLICIT. Režim PATH ve výchozím nastavení generuje obálku elementu <row> pro každý řádek v sadě výsledků. Volitelně můžete zadat název elementu. Pokud ano, zadaný název se použije jako název elementu obálky. Pokud zadáte prázdný řetězec (FOR XML PATH ('')), nevygeneruje se žádný element obálky. Další informace naleznete v tématu Použití režimu PATH s FOR XML.
MLDATA
Určuje, že má být vráceno vložené schéma XML-Data zredukované (XDR). Schéma je před dokument připojeno jako vložené schéma. Pracovní ukázku najdete v tématu Použití režimu RAW s jazykem XML.
XMLSCHEMA
Vrátí vložené schéma XML W3C (XSD). Volitelně můžete zadat identifikátor URI cílového oboru názvů při zadávání této direktivy. Tím se vrátí zadaný obor názvů ve schématu. Další informace naleznete v tématu Generování vloženého schématu XSD. Pracovní ukázku najdete v tématu Použití režimu RAW s jazykem XML.
PRVKY
Pokud je zadána možnost ELEMENTS, vrátí se sloupce jako dílčí prvky. Jinak se mapují na atributy XML. Tato možnost je podporována pouze v režimech RAW, AUTO a PATH. Můžete volitelně zadat XSINIL nebo ABSENT při použití této direktivy. XSINIL specifikuje, že u hodnot sloupce NULL by měl být vytvořen prvek, který má atribut xsi:nil nastavený na hodnotu True. Ve výchozím nastavení nebo když je funkce ABSENCE zadána společně s elementy, nejsou vytvořeny žádné prvky pro hodnoty NULL. Pracovní ukázku naleznete v tématu Použití REŽIMU RAW s FOR XML a Použití automatického režimu s FOR XML.
BINARY BASE64
Pokud je zadána možnost BINARY Base64, jsou všechna binární data vrácená dotazem reprezentována ve formátu kódování base64. Chcete-li načíst binární data pomocí režimu RAW a EXPLICIT, musí být tato možnost zadána. V režimu AUTO se ve výchozím nastavení binární data vrátí jako odkaz. Pracovní ukázku najdete v tématu Použití režimu RAW s jazykem XML.
TYPE
Určuje, že dotaz vrátí výsledky jako typ XML . Další informace naleznete v tématu Direktiva TYPE v dotazech FOR XML.
ROOT [('RootName')]
Určuje, že se do výsledného XML přidá jeden element nejvyšší úrovně. Volitelně můžete zadat název kořenového elementu, který se má vygenerovat. Výchozí hodnota je <root>.
Poznámky
Dokumentaci ke klauzuli, která platí také pro Azure SQL Database nebo SQL databázi v prostředí Fabric, najdete v tématu FOR XML (SQL Server).