開発データベースを本番環境から復元しましたが、開発環境で必要なストアドプロシージャが本番データベースに存在しません。Iiが開発されたストアドプロシージャをSQLServerにインポートするために使用できるコマンドはありますか。各手順は異なるテキストファイルにあるため、約88個のファイルがあります。
TIA!クリス
開発データベースを本番環境から復元しましたが、開発環境で必要なストアドプロシージャが本番データベースに存在しません。Iiが開発されたストアドプロシージャをSQLServerにインポートするために使用できるコマンドはありますか。各手順は異なるテキストファイルにあるため、約88個のファイルがあります。
TIA!クリス
おっと、あなたはスクリプトを生成するという面倒な方法をしました。SSMSでデータベースを右クリックし、[タスク]-> [スクリプトの生成]を選択して、すべての手順に対して単一のスクリプトを作成する必要があります。
ただし、そのプロセスを再度実行したくない場合は、フォルダー内のcmdシェルを開き、古いバッチファイルの日数を覚えておいてください。
for %f in (*.sql) do sqlcmd -i %f
これでうまくいくはずです!必要に応じて、他のパラメーター(ログイン、パスワード、サーバー名など)をsqlcmdに追加できます。スイッチのリストを表示するには、を実行しsqlcmd -h
ます。
開発データベースを右クリックして[SQLスクリプトの生成]をクリックし、保存されている手順のみを選択します。追加のフィルタリングが必要な場合は、不要なストアドプロシージャを選択することもできます。
次に、開発時にそのクエリを実行します。
コマンドラインでそれを行う方法があるかどうかはわかりませんが、それらすべてがテキストファイルにある場合、すべてのファイルをループするだけの簡単で汚いアプリを作成することはまったく難しくありません。選択した言語を使用して、本番サーバーで create ステートメントを実行します。
私のように、フォルダーの階層で多数の sql ファイルを処理する必要がある場合、この 1 つのライナーはそれらを out.sql と呼ばれる 1 つのファイルに結合し、SQL Management Studio で簡単に実行できます。END が .sql のファイルのみが含まれ、*.sqlsettings などのファイルは無視されます。
.sql ファイルの階層のルート フォルダーから実行します。置き換えられるため、out.sql に値がないことを確認してください。
del out.sql && for /f %f in ('dir /b /s ^| findstr /E \.sql') do type %f >> out.sql