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

  1. 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.

  2. Scegliere Modalità SQLCMD dal menu Query.

    Verranno eseguite istruzioni sqlcmd nel contesto dell'editor di query.

  3. Sulla barra degli strumenti Editor SQL selezionare AdventureWorks nell'elenco Database disponibili.

  4. 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
    
  5. 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.

  6. 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)
ms174187.note(it-it,SQL.90).gifImportante:
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 comandi cmd.exe. Il testo dopo !! viene passato a cmd.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.
ms174187.Caution(it-it,SQL.90).gifAttenzione:
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 e stdout 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.

ms174187.Caution(it-it,SQL.90).gifAttenzione:
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

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

17 luglio 2006

Nuovo contenuto:
  • Aggiunta della procedura per l'attivazione della modalità SQLCMD per l'editor di query.

5 dicembre 2005

Contenuto modificato:
  • Correzione della sintassi riguardante GO.
  • Aggiunta dell'esempio.
  • Unione del contenuto dell'argomento relativo alla modalità SQLCMD.