---
schema_version: "1"
id: 3b6a05d1fe67278961bc31a8c41696623fc13299762d9cdecbed2622e8157503
title: Eseguire le istruzioni SQL iniziali
collection: tableau
version: next
locale: it-it
portal_url: https://docs.salesforce.com/tableau/next/it-it/pro/desktop/connect_basic_initialsql.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/it-it/connect_basic_initialsql.htm
source_site: help.tableau.com
content_type: documentation
content_hash: c114438567572aedcf5286c63676030422bd17fd0c455d1e380167517805db18
description: Run an initial SQL command when connecting to a database, including parameters and deferred execution.
---
[Passa al contenuto principale](#main-content)

# Eseguire le istruzioni SQL iniziali

**Nota**: Tableau Prep Builder versione 2019.2.2 e successive supporta l’utilizzo di SQL iniziale, ma non supporta ancora tutte le stesse opzioni supportate da Tableau Desktop. Per informazioni sull’utilizzo di SQL iniziale con Tableau Prep Builder, consulta [Utilizzare SQL iniziale per eseguire query sulle connessioni](https://help.tableau.com/current/prep/it-it/prep_connect.htm#initial_SQL) nella Guida di Tableau Prep Builder.

Durante la connessione ad alcuni database, puoi specificare un comando SQL iniziale da eseguire o utilizzare un valore memorizzato nella cache quando viene stabilita una connessione al database, ad esempio quando apri la cartella di lavoro, aggiorni un’estrazione, accedi o pubblichi su Tableau Server.

**Nota:** SQL iniziale è diverso da una connessione SQL personalizzato. Una connessione SQL personalizzata definisce una relazione (o una tabella) per il rilascio delle query. Per maggiori informazioni, consulta [Connettersi a una query SQL personalizzata](https://help.tableau.com/current/pro/desktop/it-it/customsql.htm).

Puoi utilizzare questo comando per:

- Impostare le tabelle temporanee da utilizzare durante la sessione.
- Configurare un ambiente dati personalizzato.

Puoi aggiungere un comando SQL iniziale nella finestra di dialogo Connessione server o nella pagina Origine dati.

Nota: se l’origine dati supporta l’esecuzione di un’istruzione SQL iniziale, nell’angolo in basso a destra della finestra di dialogo Connessione server verrà visualizzato un collegamento SQL iniziale . Per informazioni sull’origine dati, consulta [Connettori supportati](https://help.tableau.com/current/pro/desktop/it-it/exampleconnections_overview.htm).

## Per utilizzare il SQL iniziale

1. Nella finestra di dialogo Connessione server, fai clic su SQL iniziale. In alternativa, sulla pagina Origine Dati, seleziona Dati > SQL iniziale o Dati > Query Banding e SQL iniziale a seconda del database a cui ti colleghi.
2. Inserisci il comando SQL nella finestra di dialogo SQL iniziale. Puoi utilizzare il menu a discesa Inserisci per passare i parametri all’origine dati.
    
    ![Configurazione SQL iniziale con un campo di testo per l’immissione di istruzioni SQL.](/tableau/next/it-it/pro/desktop/it-it/Img/connect_basic_initialsql.png)

**Nota:** Tableau non esamina gli errori dell’istruzione. Questa istruzione SQL viene inviata al database quando effettui la connessione.

La licenza del software potrebbe impedirti l’utilizzo del SQL iniziale con la tua connessione. Se pubblichi su Tableau Server, il server deve essere configurato per consentire istruzioni SQL iniziali. Per impostazione predefinita, il software server è configurato per consentire l’esecuzione di queste istruzioni quando la cartella di lavoro viene caricata in un Web browser.

Gli amministratori possono configurare il server per ignorare le istruzioni SQL iniziali utilizzando il comando `tsm configuration set`:

`tsm configuration set -k vizqlserver.initialsql.disabled -v true`

Se il server non consente le istruzioni SQL iniziali, la cartella di lavoro si apre, ma i comandi SQL iniziali non vengono inviati.

Per maggiori informazioni sul comando `tsm configuration set`, consulta la [Guida di Tableau Server](https://help.tableau.com/current/server/it-it/cli_configuration_tsm.htm#TSMSet).

## Parametri in un’istruzione SQL iniziale

Puoi passare i parametri all’origine dati in un’istruzione SQL iniziale. L’elenco seguente riepiloga i diversi vantaggi derivanti dall’utilizzo dei parametri in un’istruzione SQL iniziale.

- Puoi configurare la rappresentazione utilizzando i parametri TableauServerUser o TableauServerUserFull .
- Se l’origine dati supporta la funzionalità, puoi configurare la sicurezza a livello di riga (ad esempio, per Oracle VPD o SAP Sybase ASE) per verificare che gli utenti visualizzino solo i dati che sono autorizzati a vedere.
- Puoi fornire maggiori dettagli all’accesso, ad esempio la versione Tableau o il nome della cartella di lavoro.

In un’istruzione SQL iniziale sono supportati i parametri seguenti:

<table class="table--plain"><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">Parametro</span></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">Descrizione</span></td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><span class="uicontrol">Esempio di valore restituito</span></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">TableauServerUser</span></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Nome utente dell’utente corrente del server. Da utilizzare durante l’impostazione della rappresentazione sul server. Restituisce una stringa vuota se l’utente non ha effettuato l’accesso a Tableau Server.</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">rbianchi</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">TableauServerUserFull</span></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Nome utente e dominio dell’utente del server corrente. Da utilizzare durante l’impostazione della rappresentazione sul server. Restituisce una stringa vuota se l’utente non ha effettuato l’accesso a Tableau Server.</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">domain.lan\rbianchi</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">TableauApp</span></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Il nome dell’applicazione Tableau.</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1"><p><span class="mc-variable Variables.TabsProductDesktop variable">Tableau Desktop</span> Professional</p><p>Tableau Server</p></td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><span class="uicontrol">TableauVersion</span></td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">La versione dell’applicazione Tableau.</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">9.3</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1"><span class="uicontrol">WorkbookName</span></td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">Il nome della cartella di lavoro Tableau. Utilizzare solo nelle cartelle di lavoro con un’origine dati incorporata.</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1">Analisi finanziaria</td></tr></tbody></table>

> [!WARNING]
> 
> **Avviso:** Tableau Desktop non include il dominio. Puoi includerlo se non stai utilizzando la delega e hai impostato tsm configuration set -k DelegationUseFullDomainName=-v true--force-keys

Negli esempi seguenti vengono illustrati diversi modi per utilizzare i parametri in un’istruzione SQL iniziale.

- In questo esempio viene impostato il contesto di sicurezza in Microsoft SQL Server:
    
    `EXECUTE AS USER = [TableauServerUser] WITH NO REVERT;`
- In questo esempio viene illustrato come, in un’origine dati DataStax, puoi utilizzare i parametri per aggiungere dettagli per la registrazione o per impostare una variabile di sessione per tenere traccia dei dati:
    
    `SET TABLEAUVERSION [TableauVersion];`
- Questo esempio può essere utilizzato per impostare la sicurezza a livello di riga per Oracle VPD:
    
    `begin`
    
     `DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]);`
    
    `end;`
    
    Nota: i blocchi Oracle PL/SQL richiedono un punto e virgola finale per terminare il blocco. Consultare la documentazione di Oracle per la sintassi appropriata.

### Rinviare l’esecuzione al server

È possibile rinviare un’istruzione SQL iniziale in modo che venga eseguita solo nel server. Un motivo per rinviare l’esecuzione al server è la mancata disponibilità dell’autorizzazione ad eseguire i comandi che configurano la rappresentazione. Utilizza i tag <ServerOnly></ServerOnly> per racchiudere i comandi da eseguire solo sul server.

Esempio:

CREATE TEMP TABLE TempTable(x varchar(25));
INSERT INTO TempTable VALUES (1);
<ServerOnly>INSERT INTO TempTable Values(2);</ServerOnly>

### Sicurezza e rappresentazione

Quando utilizzi il parametro TableauServerUser o TableauServerUserFull in un’istruzione SQL iniziale, verrà creata una connessione dedicata che non può essere condivisa con altri utenti. In questo modo potrai limitare la condivisione della cache, che può migliorare la sicurezza, ma anche rallentare le prestazioni.

## Risoluzione dei problemi relativi alla creazione di una tabella per le connessioni MySQL e Oracle

#### Per le connessioni MySQL, le tabelle non vengono elencate dopo l’utilizzo dell’istruzione SQL iniziale per la creazione di una tabella

Dopo aver effettuato la connessione a MySQL ed eseguito un’istruzione SQL iniziale, è possibile che le tabelle non vengano visualizzate a causa del modo in cui Tableau costruisce la query.

CREATE TABLE TestV1.testtable77(testID int);

Per risolvere il problema, aggiungi `IF NOT EXISTS` all’istruzione SQL:

CREATE TABLE IF NOT EXISTS TestV1.TestTable(testID int);

#### Per le connessioni Oracle, l’utilizzo dell’istruzione SQL iniziale per creare una tabella causa il blocco di Tableau

Dopo aver effettuato la connessione a Oracle ed eseguito un’istruzione SQL iniziale, Tableau si blocca visualizzando una rotella che gira a causa del modo in cui Tableau costruisce la query.

CREATE TABLE TEST\_TABLE (TESTid int)

Per risolvere il problema, usa la seguente istruzione SQL:

BEGIN
EXECUTE IMMEDIATE 'create table test\_table(testID int)';
EXCEPTION
WHEN OTHERS THEN NULL;
END;