特定のフォルダー内のすべてのSQLファイルを実行するスクリプトを作成するのを手伝ってくれる人はいますか?
多数のストアドプロシージャをデプロイする必要があり、それぞれを手動で実行することなく、一度にすべてをデプロイしたいと考えています。 Microsoft SQL Server2005を実行します。
Windowsコマンドラインプロセッサはforステートメントをサポートしているため、次のような.cmd
ファイルを作成できます。
for %%f in (*.sql) do osql -U<User> -P<Pass> -S<Server> -d<Database> -i%%f
これにより、現在のフォルダーのすべての.sq
lファイルが順番に処理されます(別の回答で提案されているように、sqlcmdも使用できます)。
参照: Microsoft Windows XP --For
また、最初に使用して、スクリプトでデータベースを直接指定することもできます。
use DatabaseName
go
go
は、CREATE VIEW
やCREATE PROCEDURE
などの一部のステートメントをSQLコマンドのバッチの先頭に配置する必要があるため、重要です。
それらを特定の順序で実行する必要がある場合、最善の解決策はbat
ファイルを作成することです。
run fileA.sql
run fileB.sql
run fileZ.sql
run fileM.sql
...