2012-01-13 19 views
14

私は10 + SQL scriptを持っている場合があります。私は1バッチファイルを使用して複数のSQLスクリプトを実行するにはどうすればよいですか?

で1すべての私のスクリプトを移動して、実行したくない

は私がSQL Management studioに連続してすべての私のスクリプトを実行することができます方法はあります。

私はthisを発見しました。バッチファイルを作成する方が簡単です。

これはあなたが必要とするすべてである:サーバー名とデータベース名を交換

@echo off 
ECHO %USERNAME% started the batch process at %TIME% >output.txt 


for %%f in (*.sql) do (
(
sqlcmd.exe -S servername -E -d databasename -i %%f >>output.txt 
) 


pause 

が、それが動作していないことのようです。

アイデア?

+0

バッチファイルの実行時にoutput.txtに表示される内容は何ですか? –

+0

@ MarkBannister Willemは10:50:30.46でバッチプロセスを開始しました。それでは何も起こりません。 – Willem

+0

バッチファイルから '@echo off'コマンドを削除してもう一度やり直すとどのような出力が得られますか?また、バッチファイルの先頭に 'ECHO%PATH%'を追加し、SQLCMD.EXEのパスが含まれていることを確認してください。 –

答えて

3

でそれを行います。スクリプトを自動で実行するスケジュール計画を作成することもできます。

http://msdn.microsoft.com/en-us/library/aa174792(v=sql.80).aspx

+0

更新された質問をご覧ください。 – Willem

+0

スクリプトからエラーメッセージが表示されますか?実行するSQLスクリプトを表す '* .sql'のパスを確認しましたか。 –

+0

エラーメッセージはありません。パスはすべて細かいです – Willem

5

はい、可能です。あなたは:SQLCMDのrコマンドでそれを行うことができます。

私は強く、あなたはすべてのあなたのスクリプトを呼び出すためにStrored手順を作成することができ、この記事を読んですることをお勧めいたしますとSQLCMD

http://www.mssqltips.com/sqlservertip/1543/using-sqlcmd-to-execute-multiple-sql-server-scripts/

+0

私の更新された質問を見てください。 – Willem

+1

すべてのスクリプトをトランザクションで実行することは可能ですか?スクリプトにエラーがある場合は、ロールバックして実行を停止します。 –

9

あなたはそこに、比類のない括弧を持っています。 (* .SQL)での%% fの

を試してみてくださいsqlcmd.exe -S servernameに-E -dデータベース名-i %% F >>私はちょうど.CMDでそれを保存

OUTPUT.TXTファイルであり、動作しているようです。

2

は、ここでソースコードhttp://scriptzrunner.codeplex.com/

このユーティリティは、C#で書かれたオープンソースのユーティリティで、ドラッグと多くのSQLファイルをドロップし、データベースに対してそれらの実行を開始することができます。

1

おそらくあなたが知っていると思いますが、そうしないと、投稿したスクリプトはSQLサーバがインストールされているマシンでのみ実行されます。

0

いくつかのバッチトリック

cd %~dp0 //use this if you use 'for xxx in', it solved most of my problems 

ECHO %USERNAME% started the batch process at %TIME% >output.txt 


for %%f in (*.sql) do (
(
sqlcmd.exe -S servername -E -d databasename -i %%f >>output.txt 
) 
echo %errorlevel% 
pause 
0

あなたはBatch CompilerアドインSMSSのために、それは、あなたが一度に複数のスクリプトを実行してみましょうSQLCMDスクリプトを作成したり、* .sqlファイルにそれらを統合することができます。

関連する問題