Script para executar todos os arquivos SQL em uma pasta específica

3

Alguém pode me ajudar a escrever um script para executar todos os arquivos SQL em uma determinada pasta?

Eu preciso implantar um monte de Stored Procedures e quero implantá-los todos de uma vez sem ter que executar manualmente cada um deles. Nós rodamos o Microsoft SQL Server 2005.

    
por EJC 03.11.2010 / 15:22

2 respostas

4

O processador de linha de comando do Windows suporta a instrução for , para que você possa criar um arquivo .cmd com algo parecido com isso:

for %%f in (*.sql) do osql -U<User> -P<Pass> -S<Server> -d<Database> -i%%f

Isso processará todos os arquivos .sq l da pasta atual seqüencialmente (você também pode usar sqlcmd como sugerido em outra resposta).

Referência: Microsoft Windows XP - Para

Além disso, você pode especificar o banco de dados diretamente no script usando no começo:

use DatabaseName
go

O go é importante porque algumas instruções como CREATE VIEW ou CREATE PROCEDURE precisam estar no início de um lote de comandos SQL.

    
por 03.11.2010 / 22:01
0

Se você precisar executá-los em uma ordem específica, a melhor solução é apenas escrever um arquivo bat :

run fileA.sql
run fileB.sql
run fileZ.sql
run fileM.sql
...
    
por 03.11.2010 / 15:25