Clausola FOR (Transact-SQL)

La clausola FOR viene utilizzata per specificare l'opzione BROWSE o XML. BROWSE e XML sono opzioni non correlate.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

[ 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

  • BROWSE
    Specifica che è possibile eseguire aggiornamenti durante la visualizzazione dei dati in un cursore DB-Library in modalità browse. In un'applicazione è possibile visualizzare una tabella in modalità browse se tale tabella include una colonna di tipo timestamp, include un indice univoco e l'opzione FOR BROWSE si trova alla fine delle istruzioni SELECT inviate a un'istanza di SQL Server.

    [!NOTA] Non è possibile utilizzare <lock_hint> HOLDLOCK in un'istruzione SELECT che include l'opzione FOR BROWSE.

    L'opzione FOR BROWSE non è supportata in istruzioni SELECT unite con l'operatore UNION.

    [!NOTA] Quando le colonne chiave indice univoco di una tabella supportano valori Null e la tabella si trova sul lato interno di un outer join, l'indice non è supportato dalla modalità browse.

  • XML
    Specifica che i risultati di una query devono essere restituiti come documento XML. È necessario specificare una della modalità XML seguenti: RAW, AUTO o EXPLICIT. Per ulteriori informazioni sui dati XML e SQL Server, vedere Costruzione di codice XML tramite la clausola FOR XML.
  • RAW [ ('ElementName') ]
    Converte ogni riga del set dei risultati della query in un elemento XML con l'identificatore generico <row /> come tag dell'elemento. È possibile specificare facoltativamente un nome per l'elemento riga. L'output XML risultante utilizza il valore ElementName specificato come elemento riga generato per ogni riga. Per ulteriori informazioni, vedere Utilizzo della modalità RAW e Funzionalità avanzate della modalità RAW.
  • AUTO
    Restituisce i risultati della query in una semplice struttura XML nidificata. Ogni tabella nella clausola FROM, per cui è specificata almeno una colonna nella clausola SELECT, viene rappresentata come elemento XML. Le colonne elencate nella clausola SELECT vengono mappate agli attributi di elemento appropriati. Per ulteriori informazioni, vedere Utilizzo della modalità AUTO e Miglioramenti della modalità AUTO.
  • XMLDATA
    Restituisce lo schema XDR inline, ma non aggiunge l'elemento principale al risultato. Se si specifica l'opzione XMLDATA, lo schema XDR viene aggiunto al documento.
  • XMLSCHEMA [ ('TargetNameSpaceURI') ]
    Restituisce lo schema XSD inline. Quando si utilizza questa direttiva è possibile specificare facoltativamente un URI dello spazio dei nomi di destinazione, che restituisce lo spazio dei nomi specificato nello schema. Per ulteriori informazioni, vedere Generazione di uno schema XSD inline.
  • ELEMENTS
    Specifica che le colonne devono essere restituite come sottoelementi. In caso contrario, vengono mappate ad attributi XML. Questa opzione è supportata solo con le modalità RAW, AUTO e PATH. Per ulteriori informazioni, vedere Funzionalità avanzate della modalità RAW.
  • ABSENT
    Indica che per i valori di colonna NULL non verranno aggiunti elementi XML corrispondenti nel risultato XML. Specificare questa opzione solo con ELEMENTS.
  • PATH [ ('ElementName') ]
    Genera un wrapper dell'elemento <row> per ogni riga nel set dei risultati. È possibile specificare facoltativamente un nome di elemento per il wrapper dell'elemento <row>. Se si specifica una stringa vuota, come in FOR XML PATH ('') ), non viene generato un elemento wrapper. L'utilizzo di PATH può rappresentare un'alternativa più semplice alla scrittura di query con la direttiva EXPLICIT. Per ulteriori informazioni, vedere Utilizzo della modalità PATH.
  • BINARY BASE64
    Specifica che la query restituisce i dati binari nel formato binario con codifica Base64. Per recuperare dati binari utilizzando la modalità RAW ed EXPLICIT, questa opzione deve essere specificata. Corrisponde all'impostazione predefinita in modalità AUTO.
  • ROOT [ ('RootName') ]
    Specifica l'aggiunta di un singolo elemento principale al documento XML risultante. È possibile specificare facoltativamente il nome dell'elemento principale da generare. Se non si specifica il nome facoltativo, verrà aggiunto l'elemento <root> predefinito.

Esempi

Nell'esempio seguente la clausola FOR XML AUTO viene specificata con le opzioni TYPE e XMLSCHEMA. Essendo presente l'opzione TYPE, il set dei risultati viene restituito al client come tipo xml. L'opzione XMLSCHEMA imposta l'aggiunta dello schema XSD inline nei dati XML restituiti e l'opzione ELEMENTS specifica che il risultato XML è incentrato sugli elementi.

USE AdventureWorks;
GO
SELECT ContactID, FirstName, LastName, Phone
FROM Person.Contact
WHERE LastName LIKE 'G%'
ORDER BY LastName, FirstName 
FOR XML AUTO, TYPE, XMLSCHEMA, ELEMENTS XSINIL;

Vedere anche

Riferimento

SELECT (Transact-SQL)

Altre risorse

Utilizzo di FOR XML e di OPENXML per pubblicare ed elaborare dati XML

Guida in linea e informazioni

Assistenza su SQL Server 2005