web-dev-qa-db-ja.com

バッチファイルを使用して複数のSQLスクリプトを実行する方法

私は10以上のSQL scriptを持っている場合があります。

すべてのスクリプトを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

Servernameとdatabasenameを置き換えていますが、機能していないようです。

何か案は?

14
Willem

Strored Procedureを作成して、すべてのスクリプトを呼び出すことができます。また、スクリプトを自動的に実行するスケジュール計画を作成することもできます。

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

3
Andreas Rohde

そこには無類の括弧があります。試す

(* .sql)の%% fの場合、sqlcmd.exe -S servername -E -d databasename -i %% f >> output.txtを実行します

.cmdファイルに保存したところ、正常に機能しているようです。

9
Galdur

はい、可能です。 SQLCMDの:rコマンドで実行できます。

この記事を読んでSQLCMDで実行することを強くお勧めします

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

5
Chuck Norris

これは、ソースコードを含むオープンソースユーティリティです http://scriptzrunner.codeplex.com/

このユーティリティはC#で記述されており、多数のSQLファイルをドラッグアンドドロップして、データベースに対して実行を開始できます。

2
Clinton Ward

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

1
Arcturus

SMSSの Batch Compiler アドインを使用すると、一度に複数のスクリプトを実行したり、SQLCMDスクリプトを作成したり、*。sqlファイルに統合したりできます。

0
Patricio Cobein

バッチトリック

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
push_ebp