Executar Queries SQL de um arquivo .sql via Shell / DOS / CMD

24/07/2009 - por Tufo

Uma coisa chata geralmente enfrentada por quem presta manutenção (local ou remota) em um software que precise de modificações no banco, é o fato de ter que abrir o sql server apenas para rodar aqueles scripts prontos. Mas isso pode ser feito via um arquivo BATCH do DOS, para que o shell do windows execute automaticamente tudo! veja como abaixo:

=========ARQUIVO .SQL==================
/* DÊ USE NO BANCO DESEJADO POIS SEMPRE QUE VOCÊ SE LOGA NO SQL SERVER, O BANCO SELECIONADO VEM COMO SENDO O "MASTER" */
USE MeuBanco
GO


/* COLOQUE TODOS OS COMANDOS SQL QUE VOCÊ DESEJAR AQUI */
INSERT INTO MINHA_TABELA VALUES (VALOR1, VALOR2, VALOR3, ...)

DELETE FROM MINHA_TABELA2 WHERE SOLUCAO <> 'POG'
========================================
nota: o arquivo sql pode ser feito no notepad/bloco de notas do windows, desde q seja salvo com extensão .sql


um dos fatos mais interessantes nisso tudo, é que como você está colocando em um .bat, você não precisa necessariamente fazer apenas serviços no sql server, pode mesclar isso com toda a gama de recursos que arquivos em lotes te proporciona, como por exemplo copiar arquivos, mover arquivos, criar pastas, etc etc etc...


==========ARQUIVO BATCH===============
rem Abaixo um comando genérico apenas para mostrar que pode-se mesclar os comandos
move novaBiblioteca.dll C:\meuAPP\DLLs\

rem Abaixo é que vem o truque do SQL SERVER, modifique os campos de acordo com o que desejar, para mais opções, digite no shell 'sqlcmd/?' para uma lista completa dos modificadores que você pode colocar no comando.
sqlcmd -S MEU_SERVIDOR\SQLEXPRESS -e -U MEU_LOGIN -P MINHA_SENHA -i MEU_ARQUIVO.sql
========================================
nota: o arquivo bat pode ser feito no notepad/bloco de notas do windows, desde q seja salvo com extensão .bat

Onde o modificador:
-S = indica o servidor
-e = Indica que deverá ser escrito na tela o retorno dado pelo sql server ('x rows affected', etc)
-U = usuário que vai se logar (caso necessário, depende das suas configurações no sql server)
-P = senha do usuário informado no -U
-i = indica onde está o arquivo que será executado, pode ser tanto o caminho completo até o arquivo quando o caminho relativo, nesse caso eu utilizei o caminho relativo tendo-se como certo que o arquivo estaria na mesma pasta do batch, poderia ser perfeitamente C:\pastaX\pastaY\MEU_ARQUIVO.sql


Obs.: versões mais antigas do SQL SERVER não utilizam o "sqlcmd", utilizam para tal o "osql", basicamente é igual, apenas com modificadores a menos, que não afetam uma execução simples como a de cima.


bem, basicamente é isso!

cya next class!!
*** Dica Postada por POG MASTERS DESKTOP - v1.0

TAGS
arquivo batch no sql
como executar um arquivo shell em batch
sql server executar query arquivo
abrir o sql pelo cdm
acessar banco sql via cmd
arquivo bat executar mysql querry
arquivo bat script sql server
bat para executar scrip sql no sql server
cahamar arquivosql via arquivo.bat
cmd sql

Ver Comentários