2

順番に実行する必要があるフォルダーにたくさんのスクリプトがあります。SSMS でそれを開き、1 つずつ実行します。そのうちの 1 つが完了するのを待ってから、2 つ目を実行する必要があります。

SSMS でファイルを 1 つずつ処理するバッチ スクリプトまたはスクリプトを (可能であれば) 作成する方法はありますか? これにより、スクリプトの実行中に何か他のことを行うことができ、エラーを防ぐことができるため、時間を節約できます (ほとんどのスクリプトは、連続して作成された一時テーブルに依存しています)。

sqlcmd私が探しているのはバッチスクリプトだと思いますが、このタスクを達成する方法がわかりません。

ありがとうございました。

4

1 に答える 1

2

このためのバッチファイルをまとめるのは非常に簡単です。次のような内容をテキスト ファイルに入力しますが、ファイルの末尾には .bat を付けます (例: 'ExecuteMyScripts.bat')。

Sqlcmd はさまざまな引数を取りますが、主なものは、サーバー インスタンス用の -S、データベース用の -d、入力ファイル用の -i、ユーザー用の -U、パスワード用の -P、および出力ファイル用の -o です。手紙のケースを見てください。

メモ帳を開き、次を追加します。

sqlcmd -S mysqlserver -d mydb -U sa -P pass1 -i "c:\script1.sql" -o "c:\script1log.txt"
IF ERRORLEVEL 1 goto :eof
sqlcmd -S mysqlserver -d mydb -U sa -P pass1 -i "c:\script2.sql" -o "c:\script2log.txt"
IF ERRORLEVEL 1 goto :eof
sqlcmd -S mysqlserver -d mydb -U sa -P pass1 -i "c:\scripr3.sql" -o "c:\script3log.txt"

ファイルを ExecuteMyScripts.bat として保存します。ファイルをダブルクリックすると、両方のスクリプトが実行されます。

各 sqlcmd 呼び出しの後に 'IF ERRORLEVEL 1 goto :eof' を追加すると、エラーが見つかった場合にスクリプトの最後にジャンプします。

完全な使用法は、http://msdn.microsoft.com/en-us/library/ms162773.aspxにあります。

于 2012-05-16T19:24:22.460 に答える