Usar la utilidad sqlcmd (SQL Server Express)

Sus bases de datos Microsoft SQL Server 2008 Express (SQL Server Express) se pueden administrar ejecutando la utilidad sqlcmd desde el símbolo del sistema. Para obtener acceso a la utilidad sqlcmd, haga clic en Inicio y, a continuación, en Ejecutar, y escriba sqlcmd.exe.

Sintaxis de SQLCMD

Cuando se ejecuta la utilidad sqlcmd, están disponibles los argumentos siguientes. Para obtener información acerca de cada argumento, vea sqlcmd (utilidad) y Tutorial: utilidad sqlcmd en los Libros en pantalla de 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]

Comandos de SQLCMD

En la tabla siguiente se ofrece información general de los comandos disponibles en la utilidad sqlcmd. Para obtener más información acerca de estos comandos, vea sqlcmd (utilidad) en los Libros en pantalla de SQL Server 2008.

Comando

Descripción

go [count]

Ejecuta las instrucciones Transact-SQL almacenadas en la caché. Al especificar un valor para count, las instrucciones almacenadas en caché se ejecutarán tantas veces como indique count como un solo lote. En el ejemplo siguiente se ejecutarán las dos instrucciones dos veces:

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

-Nencrypt connection

Este modificador lo usa el cliente para solicitar una conexión cifrada. Esta opción es equivalente a ADO.net ENCRYPT = true.

-Ctrust the server certificate

Este modificador lo usa el cliente para configurarlo de forma que confíe implícitamente en el certificado de servidor sin validación. Esta opción es equivalente a ADO.net TRUSTSERVERCERTIFICATE = true.

reset

Borra la memoria caché de instrucciones.

ed

Permite editar el lote de instrucciones actual o el último que se ejecutó. Para editar el último lote ejecutado, este comando debe escribirse inmediatamente después de que se complete la ejecución del último lote.

!! <comando>

Ejecuta comandos del sistema operativo. Para ejecutar un comando del sistema operativo, inicie una línea con dos signos de exclamación (!!) seguidos por el comando del sistema operativo. En el ejemplo siguiente se proporciona una lista de directorios de la unidad actual:

1> !! dir

quit

O bien

exit

Sale de sqlcmd de forma inmediata.

exit [(instrucción)]

Permite utilizar el resultado de una instrucción SELECT como valor devuelto de sqlcmd.

La instrucción exit() sin nada entre paréntesis ejecuta todo lo que le precede en el lote y luego sale sin ningún valor devuelto.

También se puede incluir el parámetro exit como parte de un archivo por lotes. Por ejemplo:

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

:r <nombreDeArchivo>

Analiza instrucciones Transact-SQL y comandos sqlcmd en el archivo especificado mediante nombreDeArchivo en la caché de instrucciones. El archivo se leerá y se ejecutará después de que se ejecute un terminador de lote (go).

:serverlist

Enumera los servidores configurados localmente y los nombres de los servidores que difunden en la red.

:list

Imprime el contenido de la caché de instrucciones.

:listvar

Muestra una lista de variables de scripting que están establecidas actualmente.

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

Redirige toda la salida de errores al archivo especificado en filename, a la secuencia STDERR o a la secuencia STDOUT. De forma predeterminada, la salida de errores se envía a STDERR.

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

Redirige todos los resultados de consultas al archivo especificado en filename, a la secuencia STDERR o a la secuencia STDOUT. De forma predeterminada, la salida se envía a STDOUT.

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

Redirige toda la información de traza de rendimiento al archivo especificado en filename, a la secuencia STDERR o a la secuencia STDOUT. De forma predeterminada, la salida de traza de rendimiento se envía a STDOUT.

:connect nombreDeServidor[\nombreDeInstancia] [-t tiempoDeEspera] [-U nombreDeUsuario [-P contraseña] ]

Establece una conexión con una instancia de SQL Server y cierra la conexión actual.

:on error [ exit | ignore ]

Establece la acción que se llevará a cabo cuando se produzca un error durante la ejecución del script o del lote.

Cuando se utiliza la opción exit, sqlcmd se cierra, con el valor de error correspondiente.

Cuando se utiliza la opción ignore, sqlcmd descarta el error y continúa con la ejecución del lote o del script. De forma predeterminada, se imprimirá un mensaje de error.

:help

Enumera los comandos de sqlcmd junto con una breve descripción de cada comando.

Conectar con SQL Server Express

Cuando se establece una conexión con un servidor SQL Server Express, es necesario especificar el nombre del servidor y, si SQL Server Express se ha instalado en una instancia con nombre, también el nombre de la instancia. De manera predeterminada, sqlcmd utiliza la autenticación de Windows. Si se va a establecer una conexión con el servidor SQL Server Express utilizando la autenticación de SQL Server, será necesario especificar también la información de inicio de sesión para conectar con el servidor SQL Server Express. Por ejemplo, si se va a conectar a una instalación predeterminada de SQL Server Express en un servidor denominado server1, podría utilizar los argumentos siguientes:

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

Nota

Si se utiliza el argumento -P, la contraseña aparece como texto simple en el símbolo del sistema. Si omite el argumento -P, se le pedirá que especifique su contraseña. El texto que escriba estará oculto.

Si inicia sesión con una cuenta de usuario que es de confianza en el servidor que ejecuta SQL Server Express, puede omitir los argumentos -U y -P:

sqlcmd -S server1\SQLExpress

Nota

El argumento -E especifica una conexión de confianza. Ésta es la configuración predeterminada de sqlcmd y, por tanto, el argumento -E se puede omitir.

Ejemplo

En el ejemplo siguiente se muestra cómo usar la utilidad sqlcmd para establecer una conexión con una instancia de SQL Server Express, denominada SqlExpress, en un servidor denominado SqlServer1:

Sqlcmd -S SqlServer1\SqlExpress

Una vez conectado, puede ejecutar otros comandos para administrar la instancia. Por ejemplo, los comandos siguientes muestran todas las bases de datos actualmente instaladas, lo que simplifica la búsqueda del nombre lógico de una base de datos de SQL Server Express conectada:

SELECT name from sys.databases
Go

Procedimiento almacenado del sistema sp_configure

Los recursos de SQL Server Express se pueden administrar y optimizar mediante las opciones de configuración del procedimiento almacenado del sistema sp_configure. Para obtener más información acerca de sp_configure, vea Establecer las opciones de configuración del servidor en los Libros en pantalla de SQL Server.

Las siguientes opciones de configuración son parte de sp_configure, pero no se admiten en SQL Server Express:

  • Agent XPs

  • Database Mail XPs

  • SQL Mail XPs

  • Procedimientos del Asistente de Web