Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Executando conjunto de consultas SQL usando arquivo em lote?


Salve os comandos em um .SQL arquivo, ex:ClearTables.sql , digamos em seu C:\temp pasta.

Conteúdo de C:\Temp\ClearTables.sql
Delete from TableA;
Delete from TableB;
Delete from TableC;
Delete from TableD;
Delete from TableE;

Em seguida, use sqlcmd para executá-lo da seguinte forma. Como você disse que o banco de dados é remoto, use a seguinte sintaxe (depois de atualizar para o servidor e o nome da instância do banco de dados).
sqlcmd -S <ComputerName>\<InstanceName> -i C:\Temp\ClearTables.sql

Por exemplo, se o nome do computador remoto for SQLSVRBOSTON1 e o nome da instância do banco de dados for MyDB1, o comando será.
sqlcmd -E -S SQLSVRBOSTON1\MyDB1 -i C:\Temp\ClearTables.sql

Observe também que -E especifica a autenticação padrão. Se você tiver um nome de usuário e senha para se conectar, use -U e -P comuta.

Você executará tudo isso abrindo um CMD janela de comando.

Usando um arquivo em lote.

Se você quiser salvá-lo em um arquivo de lote e clicar duas vezes para executá-lo, faça o seguinte.

Crie e salve o ClearTables.bat igual a.
echo off
sqlcmd -E -S SQLSVRBOSTON1\MyDB1 -i C:\Temp\ClearTables.sql
set /p delExit=Press the ENTER key to exit...:

Em seguida, clique duas vezes nele para executá-lo. Ele executará os comandos e aguardará até que você pressione uma tecla para sair, para que você possa ver a saída do comando.