Utilizzo dell'utilità sqlcmd (SQL Server Express)

È possibile gestire i database di Microsoft SQL Server 2008 Express Edition (SQL Server Express) con l'utilità sqlcmd dal prompt dei comandi. Per accedere all'utilità sqlcmd, fare clic sul pulsante Start, scegliere Esegui e digitare sqlcmd.exe.

Sintassi di SQLCMD

Per l'esecuzione dell'utilità sqlcmd sono disponibili gli argomenti seguenti. Per informazioni su argomenti specifici, vedere Utilità sqlcmd e Esercitazione sull'utilità sqlcmd nella documentazione online di SQL Server.

Sqlcmd
  [-U login id] [-P password] [-S server] [-H hostname] 
  [-E trusted connection] [-d use database name] [-l login timeout]
  [-N encrypt connection] [-C trust the server certificate]
  [-t query timeout] [-h headers] [-s colseparator] [-w screen width]
  [-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
  [-c cmdend] [-L[c] list servers[clean output]] [-q "cmdline query"]
  [-Q "cmdline query" and exit] [-m errorlevel] [-V severitylevel]
  [-W remove trailing spaces] [-u unicode output]
  [-r[0|1] msgs to stderr] [-i inputfile] [-o outputfile]
  [-f <codepage> | i:<codepage>[,o:<codepage>]]
  [-k[1|2] remove[replace] control characters]
  [-y variable length type display width]
  [-Y fixed length type display width]
  [-p[1] print statistics[colon format]]
  [-R use client regional setting] [-b On error batch abort]
  [-v var = "value"...]
  [-X[1] disable commands[and exit with warning]]
  [-? show syntax summary]

Comandi SQLCMD

Nella tabella seguente viene fornita una panoramica dei comandi che è possibile utilizzare con l'utilità sqlcmd. Per ulteriori informazioni su questi comandi, vedere Utilità sqlcmd nella documentazione online di SQL Server 2008.

Comando

Descrizione

go [count]

Esegue qualsiasi istruzione Transact-SQL memorizzata nella cache. Se si specifica un valore per count, le istruzioni memorizzate nella cache verranno eseguite come batch singolo il numero di volte specificato da count. Il comando seguente, ad esempio, consente di eseguire due volte le due istruzioni:

1> Use MyDatabase
2> SELECT FirstName, LastName FROM Employee WHERE EmployeeID < 10
3> GO 2

-Nencrypt connection

Questa opzione viene utilizzata dal client per richiedere una connessione crittografata. Equivale all'opzione ADO.net ENCRYPT = true.

-Ctrust the server certificate

Questa opzione viene utilizzata dal client per configurare l'attendibilità implicita del certificato del server senza necessità di convalida. Equivale all'opzione ADO.net TRUSTSERVERCERTIFICATE = true.

reset

Cancella la cache dell'istruzione.

ed

Consente di modificare il batch di istruzioni corrente o l'ultimo batch eseguito. Per modificare l'ultimo batch eseguito, questo comando deve essere specificato subito dopo il completamento dell'esecuzione dell'ultimo batch.

!! <command>

Esegue i comandi del sistema operativo. Per eseguire un comando del sistema operativo, digitare due punti esclamativi all'inizio della riga (!!) seguiti dal comando del sistema operativo. Ad esempio, il comando seguente consente di ottenere l'elenco delle directory dell'unità corrente:

1> !! dir

quit

- oppure -

exit

Esce immediatamente dall'utilità sqlcmd.

exit [(statement)]

Consente di utilizzare il risultato di un'istruzione SELECT come valore restituito da sqlcmd.

Se non si specifica alcun elemento tra le parentesi dell'istruzione exit(), viene eseguito tutto ciò che la precede nel batch e l'operazione viene quindi terminata senza restituire alcun valore.

È inoltre possibile includere il parametro exit in un file batch. Ad esempio:

sqlcmd /Q "exit(SELECT COUNT(*) FROM '%1')"

:r <filename>

Analizza le istruzioni Transact-SQL e i comandi sqlcmd dal file specificato da filename nella cache delle istruzioni. Il file verrà letto ed eseguito dopo ogni terminatore di batch (go).

:serverlist

Elenca i server configurati localmente e i nomi dei server che trasmettono in rete tramite broadcast.

:list

Stampa il contenuto della cache delle istruzioni.

:listvar

Visualizza l'elenco delle variabili di scripting impostate.

:error <destination>[ filename | STDERR | STDOUT]

Reindirizza l'output di tutti i messaggi di errore nel file specificato da filename, nel flusso STDERR o nel flusso STDOUT. Per impostazione predefinita, l'output degli errori viene inviato al flusso STDERR.

:out <destination>[ filename | STDERR | STDOUT ]

Reindirizza l'output di tutti i risultati delle query nel file specificato da filename, nel flusso STDERR o nel flusso STDOUT. Per impostazione predefinita, l'output viene inviato al flusso STDOUT.

:perftrace <destination>[ filename | STDERR | STDOUT ]

Reindirizza tutte le informazioni di traccia delle prestazioni nel file specificato da filename, nel flusso STDERR o nel flusso STDOUT. Per impostazione predefinita, l'output della traccia delle prestazioni viene inviato al flusso STDOUT.

:connect server_name[\instance_name] [-t timeout] [-U username [-P password] ]

Consente di connettersi a un'istanza di SQL Server e di chiudere la connessione corrente.

:on error [ exit | ignore ]

Imposta l'azione da eseguire quando si verifica un errore durante l'esecuzione dello script o del batch.

Se si specifica l'opzione exit, l'utilità sqlcmd viene chiusa con il valore di errore appropriato.

Se si specifica l'opzione ignore, sqlcmd ignora l'errore e continua l'esecuzione del batch o dello script. Per impostazione predefinita, verrà stampato un messaggio di errore.

:help

Elenca i comandi sqlcmd assieme a una breve descrizione di ogni comando.

Connessione a SQL Server Express

Per la connessione a un server di SQL Server Express è necessario specificare il nome del server e, se SQL Server Express è installato in un'istanza denominata, il nome dell'istanza. Per impostazione predefinita, sqlcmd utilizza l'autenticazione di Windows. Se ci si connette al server di SQL Server Express tramite l'autenticazione di SQL Server è inoltre necessario specificare le informazioni di accesso per la connessione al server di SQL Server Express. Ad esempio, per la connessione a un'installazione predefinita di SQL Server Express in un server denominato server1, si potrebbero utilizzare gli argomenti seguenti:

sqlcmd -S server1\SQLExpress -U SqlUserAccount -P SqlPassword

Nota

Se si utilizza l'argomento -P, la password viene visualizzata come testo normale nel prompt dei comandi. Se si omette l'argomento -P, verrà richiesta l'immissione della password. In questo caso, il testo immesso sarà nascosto.

Se si è connessi con un account utente trusted nel server che esegue SQL Server Express, è possibile omettere gli argomenti -U e -P:

sqlcmd -S server1\SQLExpress

Nota

L'argomento -E specifica una connessione trusted. Questa è l'impostazione predefinita per l'utilità sqlcmd ed è pertanto possibile omettere l'argomento -E.

Esempio

Nell'esempio seguente viene illustrato come utilizzare l'utilità sqlcmd per connettersi a un'istanza di SQL Server Express, denominata SqlExpress, in un server denominato SqlServer1:

Sqlcmd -S SqlServer1\SqlExpress

Dopo la connessione, è possibile eseguire altri comandi per gestire l'istanza. Ad esempio, i comandi seguenti consentono di visualizzare tutti i database installati. L'esempio seguente rappresenta un metodo comodo per individuare il nome logico di un database di SQL Server Express collegato:

SELECT name from sys.databases
Go

Stored procedure di sistema sp_configure

È possibile gestire e ottimizzare le risorse di SQL Server Express tramite le opzioni di configurazione, utilizzando la stored procedure di sistema sp_configure. Per ulteriori informazioni su sp_configure, vedere Impostazione delle opzioni di configurazione del server nella documentazione online di SQL Server.

Le opzioni di configurazione seguenti sono incluse in sp_configure, ma non sono supportate in SQL Server Express:

  • Agent XPs

  • Database Mail XPs

  • SQL Mail XPs

  • Web Assistant Procedures