Te encuentras en: jorgehoya.es - nosoynadie.net >> Artículos

Puede haber veces que no podamos trabajar con un entorno gráfico para ejecutar consultas en un SQLServer, que queramos ejecutar procesos por lotes (ficheros bat) con determinados procesos, o que, simplemente, nos apetezca usar la consola. En esos casos tenemos sqlcmd, una utilidad en línea de comandos para ejecutar sentencias T-SQL. Lo necesario para utilizar este herramienta es ver su ayuda:

Herramienta de l¡nea de comandos de Microsoft (R) SQL Server
Versi¢n 9.00.5000.00 NT INTEL X86
Copyright (c) Microsoft Corporation. Reservados todos los derechos.

Uso: Sqlcmd            [-U Id. de inicio de sesi¢n]          [-P contrasña]
  [-S servidor]            [-H nombre de host]          [-E conexión de confianza]
  [-d usar nombre de base de datos] [-l tiempo de espera de inicio de sesión]     [-t tiempo de espera de consulta]
  [-h encabezados]           [-s separador de columna]      [-w ancho de pantalla]
  [-a tama¤o de paquete]        [-e entrada de eco]        [-I habilitar identificadores entre comillas]
  [-c fin de comando]            [-L[c] listar servidores[salida limpia]]
  [-q "consulta de línea de comandos"]   [-Q "consulta de línea de comandos" y salir]
  [-m nivel de error]        [-V nivel de gravedad]     [-W quitar espacios finales]
  [-u salida Unicode]    [-r[0|1] mensajes a stderr]
  [-i archivo de entrada]         [-o archivo de salida]        [-z nueva contraseña]
  [-f <p ginaDeC¢digos> | i:<p ginaDeC¢digos>[,o:<p ginaDeC¢digos>]] [-Z nueva contrase¤a y salir]
  [-k[1|2] quitar[reemplazar] caracteres de control]
  [-y ancho de pantalla de longitud variable]
  [-Y ancho de pantalla de longitud fija]
  [-p[1] imprimir estad¡sticas[formato dos puntos]]
  [-R usar configuraci¢n regional de cliente]
  [-b anular por lotes si hay errores]
  [-v var = "valor"...]  [-A conexi¢n de administrador dedicada]
  [-X[1] deshabilitar comandos, secuencia de comandos de inicio, variables de entorno [y salir]]
  [-? mostrar resumen de sintaxis]

Conexión con autenticación de Windows a la "instancia" del servidor "host"

sqlcmd -S host\instancia 

Conexión con autenticación de Windows a la base de datos "BaseDeDatos" de la "instancia" del servidor "host"

sqlcmd -S host\instancia -d BaseDeDatos

Conexión con autenticación de SQLServer a la "instancia" del servidor "host" usando las credenciales usuario + clave

sqlcmd -U usuario -P clave -S host\instancia

Una vez conectados lo único que debemos recordar es que para ejecutar sentencias T-SQL que escribamos hemos de usar la sentencia GO. Veamos una ejemplo sencillo.

-- Conexión: 
sqlcmd -S host\sqlexpress
-- Establecemos la base de datos:
use database;
go
-- Ejecutamos una consulta:
select * from tabla;
go
nombre         apellido1         apellido2
---------------------------------------------------------------------
Antonio         Martinez         Luzco
Mirella         Abad             Nothing

(2 filas afectadas) 

Nos conectamos de nuevo y configuramos la conexión de modo que nos quite los espacios al final (opción -W), fijando el separador de columas ( -s "|") y nos conecte a la base de datos "BaseDeDatos":

sqlcmd -S hos\instancia -d BaseDeDatos -s "|" -W
-- Ejecutamos una consulta:
select * from tabla;
go
nombre|apellido1|apellido2
---------------------------------------------------------------------
Antonio|Martinez|Luzco
Mirella|Abad|Nothing

(2 filas afectadas)

Como veis es una herramienta sencilla pero pontente. Aquí os dejo más referencias sobre sqlcmd, Ciao

Quizás te pueda interesar:

Subir

Y esto es lo que opináis al respecto:

Deja tu comentario:

(no se visualizará)

Ayuda Textile