Condividi tramite


Sintassi di base della clausola FOR XML

La modalità FOR XML può essere RAW, AUTO, EXPLICIT o PATH. Determina la forma del codice XML risultante.

Importante

La direttiva XMLDATA per l'opzione FOR XML è deprecata. Utilizzare la generazione XSD in caso di modalità RAW e AUTO. Non esiste alcuna sostituzione per la direttiva XMLDATA in modalità EXPLICT. Questa funzionalità verrà rimossa in una versione futura di Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Di seguito è riportata la sintassi di base descritta in Clausola 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') ] ]  

Argomenti

RAW[('ElementName')]
Accetta il risultato della query e trasforma ogni riga nel set di risultati in un elemento XML con un identificatore generico, <riga />, come tag dell'elemento. Facoltativamente, è possibile specificare un nome per l'elemento row quando si utilizza questa direttiva. Il codice XML risultante utilizzerà l'elemento ElementName specificato come elemento di riga generato per ogni riga. Per altre informazioni, vedere Usare la modalità RAW con FOR XML.

AUTOMATICO
Restituisce i risultati della query in un semplice albero XML nidificato. Ogni tabella nella clausola FROM per cui almeno una colonna è elencata nella clausola SELECT è rappresentata come elemento XML. Le colonne elencate nella clausola SELECT vengono mappate agli attributi dell'elemento appropriati. Per altre informazioni, vedere Usare la modalità AUTO con FOR XML.

ESPLICITO
Specifica che la forma dell'albero XML risultante viene definita in modo esplicito. Usando questa modalità, le query devono essere scritte in modo particolare, in modo da specificare in modo esplicito informazioni aggiuntive sull'annidamento desiderato. Per altre informazioni, vedere Usare la modalità EXPLICIT con FOR XML.

SENTIERO
Fornisce un modo più semplice per combinare elementi e attributi e introdurre annidamento aggiuntivo per rappresentare proprietà complesse. È possibile usare query in modalità FOR XML EXPLICIT per costruire questo tipo di codice XML da un set di righe, ma la modalità PATH offre un'alternativa più semplice alle query in modalità EXPLICIT eventualmente complesse. La modalità PATH, insieme alla possibilità di scrivere query FOR XML annidate e la direttiva TYPE per restituire istanze di tipo xml , consente di scrivere query con minore complessità. Offre un'alternativa alla scrittura della maggior parte delle query in modalità EXPLICIT. Per impostazione predefinita, la modalità PATH genera un wrapper per l'elemento <riga> per ogni riga nel set di risultati. Facoltativamente, è possibile specificare un nome di elemento. In tal caso, il nome specificato viene usato come nome dell'elemento wrapper. Se si specifica una stringa vuota (FOR XML PATH (''),non viene generato alcun elemento wrapper. Per altre informazioni, vedere Usare la modalità PATH con FOR XML.

XMLDATA
Specifica che deve essere restituito uno schema inline XML-Data Ridotto (XDR). Lo schema viene aggiunto all'inizio del documento come schema incorporato. Per un esempio funzionante, vedere Usare la modalità RAW con FOR XML.

XMLSCHEMA
Restituisce un XML Schema W3C inline (XSD). Facoltativamente, è possibile specificare un URI dello spazio dei nomi di destinazione quando si specifica questa direttiva. Restituisce lo spazio dei nomi specificato nello schema. Per altre informazioni, vedere Generare uno schema XSD inline. Per un esempio funzionante, vedere Usare la modalità RAW con FOR XML.

ELEMENTI
Se viene specificata l'opzione ELEMENTS, le colonne vengono restituite come sottoelementi. In caso contrario, vengono mappate ad attributi XML. Questa opzione è supportata solo nelle modalità RAW, AUTO e PATH. Facoltativamente, è possibile specificare XSINIL o ABSENT quando si utilizza questa direttiva. XSINIL specifica che un elemento con un attributo xsi:nil impostato su True deve essere creato per i valori di colonna NULL. Per impostazione predefinita o quando ABSENT viene specificato insieme a ELEMENTS, non vengono creati elementi per i valori NULL. Per un esempio funzionante, vedere Usare la modalità RAW con FOR XML e Usare la modalità AUTO con FOR XML.

BINARY BASE64
Se viene specificata l'opzione BINARY Base64, tutti i dati binari restituiti dalla query vengono rappresentati in formato con codifica Base64. Per recuperare i dati binari tramite la modalità RAW e EXPLICIT, è necessario specificare questa opzione. In modalità AUTO, i dati binari vengono restituiti come riferimento per impostazione predefinita. Per un esempio funzionante, vedere Usare la modalità RAW con FOR XML.

TIPO
Specifica che la query restituisce i risultati come tipo xml . Per altre informazioni, vedere Direttiva TYPE nelle query FOR XML.

ROOT [('RootName')]
Specifica che un singolo elemento di primo livello deve essere aggiunto al codice XML risultante. È possibile specificare facoltativamente il nome dell'elemento radice da generare. Il valore predefinito è "root".

Vedere anche

Utilizzo della modalità RAW con FOR XML
Usare la modalità AUTO con FOR XML
Utilizzo della modalità EXPLICIT con FOR XML
Utilizzare la modalità PATH con FOR XML
SELECT (Transact-SQL)
FOR XML (SQL Server)