新しいデータベースを作成しました(本番DBからの開発)。これらのDBの名前は異なり、プロシージャ内の挿入ステートメントと更新ステートメントの前に本番データベース名が付けられています。手動で行うのではなく、どうすればこれを変更できますか。
2 に答える
1
プロシージャと関数のスクリプトを作成し、テキスト ファイルを検索して置換し、新しいデータベースに適用しますか? そのすべてを簡単に自動化できます。
- Sql Management Studio を使用して、すべての手順のスクリプトを取得します。または、SQL SMO APIを使用してこれを行うPowerShell スクリプトを記述します。
- sed コマンド ラインを使用 して、ファイルの検索と置換を行います。
- SQL スクリプトを使用してデータベースを復元します(SQL 管理スタジオを使用して、操作とスクリプトを同時に実行できます)。
- SQLCMDを使用して、新しい DB で修正されたスクリプトを実行します。
于 2010-08-31T09:39:02.510 に答える
0
Preetのアプローチは正しいと思います。理論的には機能するはずの方法を次に示します(ただし、自分で試したことはありません)。
SSMS の [ストアド プロシージャ] ノードをクリックしてすべてのプロシージャをスクリプト化し、[オブジェクト エクスプローラーの詳細] ペイン ([表示] メニュー) からすべてのプロシージャを選択できます。右クリックして、Script Stored Procedure を CREATE To New Query Window として選択します (面倒なことに、ALTER を選択することはできません)。検索置換を実行し、「CREATE PROC」を「ALTER PROC」に変更します。ここで、検索と置換を実行して、不適切なデータベース参照をすべて整理します。次に、クエリを実行します...
幸運を!
于 2010-09-16T22:26:22.373 に答える