sql >> Base de Datos >  >> RDS >> Sqlserver

¿Ejecutando un conjunto de consultas SQL usando un archivo por lotes?

Guarda los comandos en un .SQL archivo, por ejemplo:ClearTables.sql , di en tu C:\temp carpeta.

Contenido de C:\Temp\ClearTables.sql

Delete from TableA;
Delete from TableB;
Delete from TableC;
Delete from TableD;
Delete from TableE;

Luego use sqlcmd para ejecutarlo de la siguiente manera. Como dijo que la base de datos es remota, use la siguiente sintaxis (después de actualizar su servidor y el nombre de la instancia de la base de datos).

sqlcmd -S <ComputerName>\<InstanceName> -i C:\Temp\ClearTables.sql

Por ejemplo, si el nombre de su computadora remota es SQLSVRBOSTON1 y el nombre de la instancia de la base de datos es MyDB1, entonces el comando sería.

sqlcmd -E -S SQLSVRBOSTON1\MyDB1 -i C:\Temp\ClearTables.sql

También tenga en cuenta que -E especifica la autenticación predeterminada. Si tiene un nombre de usuario y contraseña para conectarse, use -U y -P interruptores

Todo esto lo ejecutarás abriendo un CMD ventana de comandos.

Uso de un archivo por lotes.

Si desea guardarlo en un archivo por lotes y hacer doble clic para ejecutarlo, hágalo de la siguiente manera.

Cree y guarde el ClearTables.bat así.

echo off
sqlcmd -E -S SQLSVRBOSTON1\MyDB1 -i C:\Temp\ClearTables.sql
set /p delExit=Press the ENTER key to exit...:

Luego haga doble clic en él para ejecutarlo. Ejecutará los comandos y esperará hasta que presione una tecla para salir, para que pueda ver la salida del comando.