Modifica di script SQLCMD con l'editor di query
Data aggiornamento: 17 luglio 2006
Con l'editor di query di Microsoft SQL Server è possibile scrivere e modificare query come script SQLCMD. Per gli script SQLCMD è possibile utilizzare nell'editor di query le stesse funzionalità disponibili per tutti gli script Transact-SQL. Di seguito vengono descritte alcune di queste funzionalità:
- Codifica a colori
- Esecuzione di script
- Controllo del codice sorgente
- Analisi di script
- Showplan
Attivazione di scripting SQLCMD nell'editor di query
Per utilizzare l'editor di query di SQL Server per scrivere o modificare script SQLCMD, è necessario attivare la modalità di scripting, che per impostazione predefinita non è attivata nell'editor di query. Per attivare la modalità di scripting, fare clic sull'icona Modalità SQLCMD sulla barra degli strumenti oppure scegliere Modalità SQLCMD dal menu Query. La modalità di scripting SQLCMD verrà attivata per la finestra corrente.
Per attivare la modalità SQLCMD per una finestra dell'editor di query
In Esplora oggetti fare clic con il pulsante destro del mouse sul server e quindi scegliere Nuova query per aprire una nuova finestra dell'editor di query.
Scegliere Modalità SQLCMD dal menu Query.
Verranno eseguite istruzioni sqlcmd nel contesto dell'editor di query.
Sulla barra degli strumenti Editor SQL selezionare AdventureWorks nell'elenco Database disponibili.
Nella finestra dell'editor di query digitare le due istruzioni Transact-SQL e l'istruzione
!!DIR
sqlcmd seguenti:SELECT DISTINCT Type FROM Sales.SpecialOffer; GO !!DIR GO SELECT ProductCategoryID, Name FROM Production.ProductCategory; GO
Premere F5 per eseguire l'intera sezione di istruzioni miste Transact-SQL e MS-DOS.
Si notino i due riquadri dei risultati SQL relativi alla prima e alla terza istruzione.
Nel riquadro Risultati fare clic sulla scheda Messaggi per visualizzare i messaggi relativi alle tre istruzioni:
- (Righe interessate: 6)
- <Informazioni della directory>
- (Righe interessate: 4)
Importante: |
---|
Quando viene eseguita dalla riga di comando, l'utilità sqlcmd garantisce un'interazione completa con il sistema operativo. Quando si utilizza l'editor di query in Modalità SQLCMD, è necessario assicurarsi che non vengano eseguite istruzioni interattive. L'editor di query non è in grado di rispondere alle richieste del sistema operativo. |
Per ulteriori informazioni sull'esecuzione di SQLCMD, vedere Utilità sqlcmd oppure eseguire l'esercitazione relativa a SQLCMD.
Attivazione di scripting SQLCMD per impostazione predefinita
Per attivare la modalità di scripting SQLCMD per impostazione predefinita, scegliere Opzioni dal menu Strumenti, espandere Esecuzione query e SQL Server, fare clic sulla pagina Generale e quindi selezionare la casella di controllo Per impostazione predefinita, apri le nuove query in modalità SQLCMD.
Scrittura e modifica di script SQLCMD
Dopo avere attivato la modalità di scripting, sarà possibile immettere comandi SQLCMD e istruzioni Transact-SQL. Sono applicabili le regole seguenti:
- I comandi SQLCMD devono essere specificati come prima istruzione di una riga.
- È consentito un solo comando SQLCMD per riga.
- I comandi SQLCMD possono essere preceduti da commenti o da spazio vuoto.
- I comandi SQLCMD all'interno di commenti non vengono eseguiti.
- I caratteri per i commenti a riga singola sono due segni meno (
--)
e devono essere visualizzati all'inizio della riga. - I comandi del sistema operativo devono essere preceduti da due punti esclamativi (
!!
). Il comando formato da due punti esclamativi attiva l'esecuzione dell'istruzione immediatamente seguente tramite il processore dei comandicmd.exe
. Il testo dopo!!
viene passato acmd.exe
come parametro e pertanto la riga di comando finale verrà eseguita come:"%SystemRoot%\system32\cmd.exe /c <text after !!>"
. - Per una chiara distinzione tra i comandi SQLCMD e Transact-SQL, è necessario che tutti i comandi SQLCMD utilizzino come prefisso un carattere due punti (
:
). - Il comando
GO
può essere utilizzato senza prefisso oppure può essere preceduto da!!:
- L'editor di query supporta variabili di ambiente e variabili definite in uno script SQLCMD, ma non supporta variabili osql o SQLCMD predefinite.
Attenzione: |
---|
Per l'esecuzione in modalità regolare e SQLCMD, SQL Server Management Studio utilizza Microsoft SqlClient .NET. Quando viene eseguito dalla riga di comando, SQLCMD utilizza il provider OLE DB. Poiché le opzioni predefinite che è possibile applicare sono diverse, l'esecuzione della stessa query in modalità SQLCMD di SQL Server Management Studio e nell'utilità SQLCMD potrebbe generare risultati diversi. |
Sintassi SQLCMD supportata
L'editor di query supporta le parole chiave script SQLCMD seguenti:
[!!:]GO[count]
!! <command>
:exit(statement)
:Quit
:r <filename>
:setvar <var> <value>
:connect server[\instance] [-l login_timeout] [-U user [-P password]]
:on error [ignore|exit]
:error <filename>|stderr|stdout
:out <filename>|stderr|stdout
[!NOTA] Sia per
:error
sia per:out
,stderr
estdout
inviano l'output alla scheda Messaggi.
I comandi SQLCMD non inclusi nell'elenco precedente non sono supportati nell'editor di query. Quando viene eseguito uno script contenente parole chiave SQLCMD non supportate, per ognuna di esse l'editor di query invierà un messaggio "Ignoring command <comando ignorato>" alla destinazione. Lo script verrà eseguito, ma i comandi non supportati verranno ignorati.
Attenzione: |
---|
Poiché SQLCMD non viene avviato dalla riga di comando, l'esecuzione dell'editor di query in modalità SQLCMD presenta alcune limitazioni. Non è possibile passare parametri della riga di comando come variabili e poiché l'editor di query non è in grado di rispondere ai prompt del sistema operativo, evitare di eseguire istruzioni interattive. |
Codifica a colori negli script SQLCMD
Quando è attivata la modalità di scripting SQLCMD, gli script avranno codifica a colori. La codifica a colori per le parole chiave Transact-SQL rimarrà invariata. I comandi SQLCMD vengono presentati con uno sfondo ombreggiato.
Esempio
Nell'esempio seguente viene utilizzata l'istruzione sqlcmd per creare un file di output denominato testoutput.txt e vengono eseguite due istruzioni Transact-SQL SELECT insieme a un comando del sistema operativo (per stampare la directory corrente). Il file risultante contiene l'output del messaggio dall'istruzione DIR
, seguito dall'output dei risultati dalle istruzioni Transact-SQL.
:out C:\testoutput.txt
SELECT @@VERSION As 'Server Version'
!!DIR
!!:GO
SELECT @@SERVERNAME AS 'Server Name'
GO
Vedere anche
Altre risorse
Utilità sqlcmd
Esercitazione su SQL Server Management Studio
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
17 luglio 2006 |
|
5 dicembre 2005 |
|