web-dev-qa-db-ja.com

特定のフォルダー内のすべてのSQLファイルを実行するスクリプト

特定のフォルダー内のすべてのSQLファイルを実行するスクリプトを作成するのを手伝ってくれる人はいますか?

多数のストアドプロシージャをデプロイする必要があり、それぞれを手動で実行することなく、一度にすべてをデプロイしたいと考えています。 Microsoft SQL Server2005を実行します。

3
EJC

Windowsコマンドラインプロセッサはforステートメントをサポートしているため、次のような.cmdファイルを作成できます。

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

これにより、現在のフォルダーのすべての.sqlファイルが順番に処理されます(別の回答で提案されているように、sqlcmdも使用できます)。

参照: Microsoft Windows XP --For

また、最初に使用して、スクリプトでデータベースを直接指定することもできます。

use DatabaseName
go

goは、CREATE VIEWCREATE PROCEDUREなどの一部のステートメントをSQLコマンドのバッチの先頭に配置する必要があるため、重要です。

4

それらを特定の順序で実行する必要がある場合、最善の解決策はbatファイルを作成することです。

run fileA.sql
run fileB.sql
run fileZ.sql
run fileM.sql
...
0
ChrisF