Condividi tramite


Modifica di script SQLCMD nell'Editor T-SQL

Aggiornamento: novembre 2007

Quando si scrivono o si modificano script nell'Editor T-SQL (Transact-SQL), è possibile utilizzare una combinazione di comandi T-SQL e SQLCMD se in precedenza è stata abilitata la modalità SQLCMD. Per ulteriori informazioni, vedere Procedura: attivare la modalità SQLCMD nell'editor T-SQL.

Scrittura e modifica di script SQLCMD

Se si desidera includere comandi SQLCMD e T-SQL nello stesso script, è necessario verificare che lo script sia conforme ai requisiti seguenti:

  • I comandi SQLCMD devono essere inseriti come prima istruzione in una riga.

  • Non è possibile inserire più di un comando SQLCMD su ogni riga.

  • È possibile inserire commenti o spazi vuoti prima dei comandi SQLCMD.

  • È possibile utilizzare i caratteri di commento per evitare l'esecuzione di comandi SQLCMD.

  • È necessario utilizzare due trattini all'inizio di una riga come carattere di commento di ogni riga.

  • Per distinguerli dai comandi T-SQL, è necessario precedere i comandi SQLCMD dal segno di due punti.

  • È possibile utilizzare variabili di ambiente e variabili definite come parte di uno script SQLCMD, ma non variabili SQLCMD incorporate.

Utilizzo di sintassi SQLCMD

È possibile utilizzare i seguenti comandi:

  • :r nomefile
    Analizza istruzioni T-SQL e comandi SQLCMD aggiuntivi nel file specificato da nomefile nella cache dell'istruzione. NomeFile è relativo alla directory di avvio per Visual Studio. Il file viene letto ed eseguito dopo il rilevamento di un terminatore di batch. È possibile eseguire più comandi :r. Il file può contenere qualsiasi comando SQLCMD, incluso il terminatore di batch definito in Strumenti, Opzioni. È possibile utilizzare :r in uno script pre-distribuzione o di post-distribuzione per includere altri script.

  • :setvar ValoreVariabile
    Definisce le variabili di scripting. Le variabili di scripting presentano il formato $(variabile). I nomi delle variabili non rilevano la distinzione tra lettere maiuscole e minuscole. Se una variabile definita utilizzando :setvar ha lo stesso nome di una variabile di ambiente, la prima ha la precedenza. I nomi delle variabili devono contenere spazi e non possono avere lo stesso formato di un'espressione di variabile, ad esempio $(var). Se il valore stringa della variabile di scripting contiene spazi vuoti, è necessario racchiuderlo tra virgolette. Se un valore di una variabile di scripting non viene specificato, tale variabile viene eliminata.

  • :connect nomeserver[\nomeistanza] [-l timeout] [-U nomeutente [-P password]]
    Effettua la connessione a un'istanza di Microsoft SQL Server e chiude la connessione corrente dopo il numero di secondi specificato da timeout. È possibile specificare "-l 0" per un timeout infinito o un numero positivo di secondi, ad esempio "-l 30". Se non si specificano né opzioni né variabili d'ambiente per nomeutente e password, per l'accesso viene utilizzata la modalità Autenticazione di Windows.

  • :on error [exit | ignore]
    Imposta l'azione da eseguire quando si verifica un errore durante l'esecuzione dello script o del batch. Se si utilizza l'opzione exit, l'esecuzione viene terminata con il valore di errore appropriato. Se si utilizza l'opzione ignore, l'Editor T-SQL ignora l'errore e continua l'esecuzione del batch o dello script. Per impostazione predefinita, viene visualizzato un messaggio di errore.

  • :listvar
    Visualizza un elenco delle variabili di scripting attualmente impostate. Vengono visualizzate solo le variabili di scripting impostate nella sessione corrente in modalità SQLCMD.

  • :exit
    Interrompe il batch corrente senza eseguirlo e senza restituire alcun valore.

  • :exit()
    Esegue il batch, quindi interrompe l'esecuzione senza restituire alcun valore.

  • :exit(Query)
    Esegue il batch (inclusa la query), restituisce i risultati della query, quindi interrompe l'esecuzione.

Esempi

Per connettere un'istanza, istanza1, di SQL Server, server, utilizzando la protezione integrata, è necessario includere il comando seguente:

:connect myserver\instance1.

Per connettersi all'istanza predefinita di server utilizzando variabili di scripting, è necessario includere il comando seguente:

:setvar myusername test

:setvar myservername myserver

:connect $(myservername) $(myusername)

Per eseguire una semplice query archiviata nel file selectFromTable.sql in C:\Files, è necessario includere il comando seguente:

:SETVAR tablevar Suppliers

:r C:\Files\selectFromTable.sql

GO

:SETVAR tablevar Customers

:r C:\Files\selectFromTable.sql

GO

Il file selectFromTable.sql contiene la query di esempio seguente:

SELECT * FROM $(tablevar)

GO

Vedere anche

Attività

Procedura: eseguire una query

Procedura: impostare opzioni relative all'esecuzione di query e ai risultati

Concetti

Cenni preliminari sui risultati delle query