2009-05-13 7 views
4

私はDatabasePublishingWizardを使用して、データとスキーマの両方を含む大きな作成スクリプトを生成しています。それが生成するファイルは非常に大きいので、構文エラーを修正するためにスクリプトを開くのは不可能で、4GB未満のマシンは実行に苦労します!私は何をすればいいのですか?どうすればいいですか?あなたが提供できるあらゆるお手伝いをありがとうございます。.sqlスクリプトを複数のファイルに分割するにはどうすればよいですか?

答えて

4

データベース公開ウィザードを使用すると、1つの大きなファイルではなく、別のファイルとして作成されたすべてのオブジェクトを持つことができます。その後、すべてのファイルをソース管理に入れ、すべての変更を追跡できます。

現在のプロジェクトでは、スクリプトを使用して開発用データベースを再作成しています。スクリプトは既存のオブジェクトをすべて削除し、各オブジェクトファイルに対して次のステートメントを使用してそれらのオブジェクトを読み込みます。

のsqlcmd -S%1 -d THRIVEHQ -E -b -i "../Tables/Schema.sql" %のERRORLEVELの%のNEQ 0後藤エラー

+0

どのようにオブジェクトごとにデータベース公開ウィザード出力ファイルを個別に出力させることができますか? – alexandrul

0

私の頭の上から離れて、私は、それぞれの "GO"ステートメントの後にブレークが発生する複数のものにファイルを分離するスクリプトを書くと言うでしょう。分割された各ファイルを順番に実行する別のスクリプトを書くことができます。

0

私はステップでそれをやります。

すべてのテーブルとビューを1つのスクリプトとして生成します。

すべてのストアドプロシージャと権限を1つのスクリプトとして生成します。

DTSまたはSSISを使用してデータを移行します。

これはすべてMS SQL Server Management Studioで実現できます。

1

ちょうどケビンさんのコメントに追加したい場合。スクリプトを別々のファイルに分割するすべてのファイルを実行順に並べるスクリプトを作成します。

多くの相互依存性を持つ大きなデータベースを1つの大きなファイルとしてダンプすると、ほとんどの場合と同じように大したことはありませんが、スクリプトはエラーなしで実行されません。私の世界では、このビューのどのビューが他のビューに依存しているかを素早く確認するための命名規則を使用します。例えば、私がこのv_VIEW_NAME_ORIGINATING-TABLE_Dumpのようなものを使用してデータのダンプを生成するだけのビューを持っているなら、メイン・ダンプ・テーブルから派生したビューの_weeklyまたは_weekly_Summaryのようなものにサフィックスを変更します。

私は何年も前に教訓を学んだので、以来、私のすべてのデータベースでこの名前付けスキーマに従ってきました。

1

DBSourceToolsを試してください。
http://dbsourcetools.codeplex.com
データベース全体を、データベースオブジェクトごとに1つのファイルにディスクにスクリプト化します。
展開ターゲットを使用すると、ファイルから任意のデータベースを再作成できます。
開発者がソースコード管理下でデータベースを入手できるように特別に設計されています。

関連する問題