Compartir a través de


Editar scripts SQLCMD en el Editor de Transact-SQL

Actualización: noviembre 2007

Cuando se escriben o editan scripts en el editor de Transact-SQL (T-SQL), se pueden combinar comandos T-SQL y SQLCMD si se habilita primero el modo SQLCMD. Para obtener más información, vea Cómo: Habilitar el modo SQLCMD en el editor de Transact-SQL.

Escribir y editar scripts SQLCMD

Si desea incluir comandos SQLCMD y comandos T-SQL en el mismo script, debe asegurarse de que el script cumple los siguientes requisitos:

  • Los comandos SQLCMD deben ser la primera instrucción de una línea.

  • No puede colocarse más de un comando SQLCMD en una línea.

  • Los comandos SQLCMD pueden ir precedidos de comentarios o espacios en blanco.

  • Pueden utilizarse caracteres de comentario para evitar que se ejecuten los comandos SQLCMD.

  • Deben usarse dos guiones al principio de la línea para formar el carácter de comentario.

  • Debe usar dos puntos antes de cada comando SQLCMD para distinguirlo claramente de los comandos T-SQL.

  • Se pueden usar variables de entorno y variables definidas como parte de un script SQLCMD, pero no variables SQLCMD integradas.

Utilizar la sintaxis de SQLCMD

Puede utilizar los comandos siguientes:

  • :r nombreDeArchivo
    Analiza las instrucciones T-SQL y los comandos SQLCMD adicionales en el archivo especificado mediante nombreDeArchivo y los coloca en la memoria caché de instrucciones. nombreDeArchivo se interpreta en relación al directorio de inicio de Visual Studio. El archivo se lee y se ejecuta después de que se encuentra un terminador de lote. Se pueden ejecutar varios comandos :r. El archivo puede incluir cualquier comando SQLCMD, incluido el terminador de lote que se define en Herramientas - Opciones. Puede utilizar: r en un script anterior o posterior a la implementación para incluir otros scripts.

  • :setvar Nombre de variable
    Define las variables de script. Las variables de script tienen el formato siguiente: $(Variable). En los nombres de variable no se hace distinción entre mayúsculas y minúsculas. Si una variable definida mediante :setvar tiene el mismo nombre que una variable de entorno, tiene prioridad la variable definida mediante :setvar. Los nombres de variable no pueden tener caracteres de espacio. Los nombres de variable no pueden tener el mismo formato que una expresión variable como $(var). Si el valor de cadena de la variable de script contiene espacios en blanco, debe especificar el valor entre comillas. Si no se especifica un valor para una variable de script, ésta se elimina.

  • :connect nombreDeServidor[\nombreDeInstancia] [-l tiempoDeEspera] [-U nombreDeUsuario [-P Contraseña]]
    Se conecta a una instancia de Microsoft SQL Server y cierra la conexión actual cuando ha transcurrido el número de segundos especificado en tiempoDeEspera. Puede especificar "-l 0" para que el tiempo de espera sea infinito o un número positivo de segundos, como "-l 30". Si no proporciona opciones ni variables de entorno para nombreDeUsuario y Contraseña, se usa el modo de autenticación de Windows para iniciar sesión.

  • :on error [exit | ignore]
    Establece la acción que se debe realizar cuando se produce un error durante la ejecución del script o del lote. Si utiliza la opción exit, la ejecución finaliza con el valor de error correspondiente. Si utiliza la opción ignore, el editor de T-SQL omite el error y continúa ejecutando el lote o el script. De manera predeterminada, se imprime un mensaje de error.

  • :listvar
    Muestra una lista de las variables de script actualmente establecidas. Sólo aparecen las variables de script que se han establecido en la sesión actual en modo SQLCMD.

  • :exit
    Detiene el lote actual sin ejecutarlo y sin devolver ningún valor.

  • :exit()
    Ejecuta el lote y después detiene la operación sin devolver ningún valor.

  • :exit(Consulta)
    Ejecuta el lote (incluida la Consulta), devuelve los resultados de la Consulta y después se detiene.

Ejemplos

Para conectarse a una instancia, instance1, de SQL Server, myserver, utilizando la seguridad integrada, incluiría el comando siguiente:

:connect myserver\instance1.

Para conectarse a la instancia predeterminada de myserver utilizando variables de script, incluiría el comando siguiente:

:setvar myusername test

:setvar myservername myserver

:connect $(myservername) $(myusername)

Para ejecutar una consulta simple almacenada en el archivo selectFromTable.sql, en C:\Files, incluiría el comando siguiente:

:SETVAR tablevar Suppliers

:r C:\Files\selectFromTable.sql

GO

:SETVAR tablevar Customers

:r C:\Files\selectFromTable.sql

GO

El archivo selectFromTable.sql contiene la siguiente consulta de ejemplo:

SELECT * FROM $(tablevar)

GO

Vea también

Tareas

Cómo: Ejecutar una consulta

Cómo: Establecer opciones para la ejecución de consultas y sus resultados

Conceptos

Descripción general de los resultados de una consulta