Tenho vários arquivos .sql que preciso executar para aplicar as alterações feitas por outros desenvolvedores em um banco de dados SQL Server 2005. Os arquivos são nomeados de acordo com o seguinte padrão:
0001 - abc.sql
0002 - abcef.sql
0003 - abc.sql
...
Existe uma maneira de executar todos eles de uma vez?
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P "password" -i"%%G"
Use FOR . No prompt de comando:
fonte
for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f" >> sql.log 2>&1)
Você pode ler mais sobre o redirecionamento da saída aquiNo SQL Management Studio, abra uma nova consulta e digite todos os arquivos conforme abaixo
Clique em Modo SQLCMD; os arquivos serão selecionados em cinza como abaixo
fonte
Certifique-se de ter SQLCMD habilitado clicando na opção Query> SQLCMD mode no management studio.
Suponha que você tenha quatro arquivos .sql (
script1.sql,script2.sql,script3.sql,script4.sql
) em uma pastac:\scripts
.Crie um arquivo de script principal (Main.sql) com o seguinte:
Salve o Main.sql no próprio c: \ scripts.
Crie um arquivo em lote denominado
ExecuteScripts.bat
com o seguinte:Lembre-se de substituir
<YourDatabaseName>
pelo banco de dados que deseja executar seus scripts. Por exemplo, se o banco de dados for "Funcionário", o comando seria o seguinte:Execute o arquivo em lote clicando duas vezes no mesmo.
fonte
-b
exemplo:SQLCMD -b -i "file 1.sql","file 2.sql"
Você pode usar o ApexSQL Propagate . É uma ferramenta gratuita que executa vários scripts em vários bancos de dados. Você pode selecionar quantos scripts precisar e executá-los em um ou vários bancos de dados (até mesmo em vários servidores). Você pode criar uma lista de scripts e salvá-la e, em seguida, apenas selecionar essa lista toda vez que desejar executar os mesmos scripts na ordem criada (várias listas de scripts também podem ser adicionadas):
Quando os scripts e bancos de dados são selecionados, eles serão mostrados na janela principal e tudo que você precisa fazer é clicar no botão “Executar” e todos os scripts serão executados nos bancos de dados selecionados na ordem dada:
fonte
Consulta Geral
salve as linhas abaixo no bloco de notas com o nome batch.bat e coloque dentro da pasta onde estão todos os seus arquivos de script
EXEMPLO
para %% G em (* .sql) faça sqlcmd / S NFGDDD23432 / d EMPLYEEDB -i "%% G" pausa
em algum momento, se o login falhar para você, use o código abaixo com nome de usuário e senha
para %% G em (* .sql) faça sqlcmd / S NE8148server / d EMPLYEEDB -U Scott -P tiger -i "%% G" pausa
Depois de criar o arquivo bat dentro da pasta onde estão seus arquivos de script basta clicar no arquivo bat seus scripts serão executados
fonte
Escrevi um utilitário de código aberto em C # que permite arrastar e soltar muitos arquivos SQL e começar a executá-los em um banco de dados.
O utilitário possui os seguintes recursos:
fonte
A maneira mais fácil que encontrei inclui as seguintes etapas (o único requisito é estar no Win7 +):
Parece longo, mas na realidade é muito rápido .. (parece longo, já que descrevi até os menores passos)
fonte
Pelo que sei, você pode usar os comandos osql ou sqlcmd para executar vários arquivos sql. A desvantagem é que você terá que criar um script para ambos os comandos.
Usando SQLCMD para executar vários scripts do SQL Server
OSQL (para sql server 2000)
http://msdn.microsoft.com/en-us/library/aa213087(v=SQL.80).aspx
fonte
Passo 1: copie as linhas acima para o bloco de notas e salve-o como bastão.
passo 2: Na pasta d drive abc em todos os arquivos Sql nas consultas executadas no servidor sql.
passo 3: Forneça seu ip, id de usuário e senha.
fonte
Você pode criar um único script que chama todos os outros.
Coloque o seguinte em um arquivo em lote:
Ao executar esse arquivo em lote, ele criará um novo script nomeado
all.sql
no mesmo diretório em que o arquivo em lote está localizado. Ele procurará todos os arquivos com a extensão.sql
no mesmo diretório onde o arquivo em lote está localizado.Você pode então executar todos os scripts usando
sqlplus user/pwd @all.sql
(ou estender o arquivo em lote para chamarsqlplus
depois de criar oall.sql
script)fonte
Para executar cada arquivo SQL no mesmo diretório, use o seguinte comando:
Este comando criará um único arquivo SQL com os nomes de cada arquivo SQL no diretório acrescentado por "@".
Depois que o
all.sql
é criado, basta executarall.sql
com SQLPlus, ele executará todos os arquivos sql noall.sql
.fonte
Se você pode usar SQL interativo:
1 - Crie um arquivo .BAT com este código:
2 - Altere o pwd e o ServerName.
3 - Coloque o arquivo .BAT na pasta que contém os arquivos .SQL e execute-o.
fonte