別のデータベースからデータベースを作成しますか?
-
09-06-2019 - |
質問
SQL Server 2005 には、別のデータベース内の複数のテーブルからデータベースを自動的に作成する方法はありますか?プロジェクトで作業する必要があり、それをローカルで実行するために必要なテーブルはいくつかだけですが、50 ギガの DB のバックアップは作成したくありません。
アップデート
Management Studio で [タスク] -> [データのエクスポート] を試してみたところ、必要なテーブルを含む新しいサブデータベースが作成されましたが、テーブルのメタデータはコピーされませんでした。つまり、PK/FK 制約も ID データもコピーされませんでした。 [ID を保持] がオンになっている場合)。
動作させるためには明らかにこれらが必要なので、他の提案も歓迎します。そのデータベース公開ツールを試してみます。
利用可能な統合サービスがなく、2 つの SQL Server は相互に直接接続できないため、これらは無効です。
アップデートのアップデート
データベース公開ツールは機能しましたが、生成された SQL には少しバグがあったため、少し手動で編集する必要がありました (存在しないトリガーを参照しようとしました)。しかし、一度編集すれば問題ありませんでした。
解決
使用できます データベース公開ウィザード このために。データの有無にかかわらずテーブルのセットを選択し、.sql スクリプト ファイルにエクスポートして、他のデータベースに対して実行してテーブルやデータを再作成できます。
他のヒント
まず新しいデータベースを作成します。次に、それを右クリックして、コンテキスト メニューの [タスク] サブメニューに移動します。そこには何らかのインポート/エクスポート機能が必要です。今は仕事中でないので正確には思い出せません!:)
そこから、送信元データ ソースと送信先データ ソース、および転送するテーブルを選択できます。テーブルを選択するときに、詳細 (またはオプション) ボタンをクリックし、「主キーを保持する」というチェック ボックスをオンにします。それ以外の場合は、新しい主キー値が作成されます。
この方法が自動とは言い難いことはわかっていますが、単純な SELECT INTO ステートメントをいくつか使用してみてはいかがでしょうか。
最初にスキーマ、制約、インデックスを再構築する必要があるためです。それが私が自動化したい部分です...データを取得するのは簡単な部分です。
皆さん、ご提案ありがとうございます。これは簡単そうです。
Integration Services は、このタスクの達成に役立ちます。このツールは高度なデータ変換機能を提供するため、大規模なデータベースから必要なデータの正確なサブセットを取得できます。
このようなデータがテスト/デバッグに必要であると仮定すると、エクスポートされるデータの量を減らすために行サンプリングを適用することを検討できます。
- 新しいデータベースを作成する
- それを右クリックして、
- タスク -> データのインポート
- 指示に従ってください