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:
|
-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:
|
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:
|
: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