Acredito que todo DBA e boa parte dos desenvolvedores já precisaram executar vários scripts SQL de forma prática e rápida, não se esquecendo de nenhum e ainda logando as operações para eventuais questionamentos. Essa atividade é muito comum e diariamente precisamos executar uma serie de scripts em sequencia.
E é claro que eu não iria executá-los um por um manualmente..
Para essa solução, vou utilizar a linguagem do Prompt de comando do Windows (CMD.exe) e SQLCMD, o utilitário de linha de comando do SQL Server.
Lembre-se que como responsabilidade de todo DBA, você deve avaliar e validar todos os scripts que lhe são enviados para serem executados, preferencialmente em um ambiente de testes, desenvolvimento e/ou pré-produção. Não utilize a solução apresentada aqui para executar vários scripts em batch diretamente na produção sem ao menos tê-los testado em um ambiente de testes antes.
Exemplo:
Criaremos um arquivo .BAT no diretório dos seus scripts
(Neste exemplo, vou usar o nome “Executa Scripts.bat”) com o seguinte comando:
2
|
for %%G in (*.sql) do sqlcmd /S localhost\sql2014 /d Testes -E -i"%%G" >> Teste.log
pause
|
Detalhes, onde:
/S: define o servidor\instância onde os scripts serão executados
/d: define o database onde os scripts serão executados
-E: especifica que o modo de autenticação será o Trusted Connection (Autenticação Windows AD). Caso você queira utilizar autenticação SQL, utilize -Uusuario e -Psenha
-i: especifica o arquivo de entrada que contém os comandos que serão executados
Reparem que nessa solução, o log é gerado com o resultado da execução de cada script, sem informação de data e hora e sem separação entre os scripts. Com isso, os resultados não ficam muito organizados dentro do arquivo. Se você não se preocupa muito com a saída do log, pode utilizar essa solução tranquilamente.
Exemplo do log de execução:
Nenhum comentário:
Postar um comentário