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: impostare opzioni relative all'esecuzione di query e ai risultati