3

Microsoft Sql Server Management Studio を使用しています。私は現在、データを含む既存のデータベースを持っています。これを DatabaseProd と呼びます。また、テストに使用するデータを含む 2 つ目のデータベースを持っているため、データは正確でも最新でもありません。このデータベースを DatabaseDev と呼びます。

ただし、DatabaseDev には、新しく追加されたテーブルや新しく追加された列などが含まれるようになりました。

DatabaseProd のデータを保持しながら、この新しいスキーマを DatabaseDev から DatabaseProd にコピーしたいと思います。

元。DatabaseProd には、列 ID を持つ 2 つのテーブル TableA と列 ID と jobName を持つ名前 TableB が含まれており、これらのテーブルには保持したいデータが含まれています

DatabaseDev には、列 ID 、名前、および phoneNum を含む 3 つのテーブル TableA が含まれ、列 ID および jobName を含む TableB と、列 ID およびドキュメントを含む TableC が含まれており、これらのテーブルには必要のないデータが含まれています

DatabaseDev スキーマを DatabaseProd にコピーしますが、DatabaseProd からのデータを保持します。そのため、コピー後の DatabaseProd は、列 ID 、名前、phoneNum を持つこの TableA のようになります。

それは可能ですか?

ありがとうございました

4

3 に答える 3

3

Red-Gate SQL Compareを使用できます。これにより、両方の DB を比較し、ソース DB で実行するスクリプトを生成できます。ライセンス料を支払う必要がありますが、14-day trial period.

このツールは、Data Compareと、開発時間を短縮し、人的エラーを最小限に抑えるため、新しい役割で常に主張している 2 つのツールと共に使用します。

また、SQL 比較を使用する場合のヒントrollback script- を生成する必要がある場合は、(を作成した後に) プロジェクトを編集しrollout script、ソースと宛先を切り替えると、スキーマを元に戻すスクリプトが作成されます。失敗した場合の状態rollout script。ただし、これを行うときは細心の注意を払い、 synchronize with sql compare を選択せず​​、スクリプトを生成してください。画像を参照してください。画像をアップロードできませんが、ここに 1 つリンクしています。SQL 比較を使用して [スクリプトの生成/同期] を選択する 2 つのオプションが表示されます。

于 2013-09-18T14:26:54.280 に答える
0

はい、スキーマ専用のデータベーススクリプトを生成するだけで、そのスクリプトにデータは追加されません。

また、データベース スクリプトの作成または生成中に 3 番目のテーブルを選択し、そのスクリプトを運用サーバー データベースに対して実行するだけで、データなしで新しいテーブル (この場合はテーブル 3) が作成されます。

データベース スクリプトの作成方法の詳細については、次のリンクを参照してください。

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema-ストアド プロシージャ関数トリガー テーブル ビュー制約とその他すべてのデータベース オブジェクト/

于 2013-09-18T13:50:20.903 に答える
0

ALTER TABLE ステートメントが必要です

ALTER TABLE tableA ADD PhoneNum Varchar(10) --Insert variable of choice here

TableB に変更がないように見えた

テーブル C を追加

CREATE TABLE TableC (ColumnID int, Document Varvhar(50))

制約、インデックス、またはトリガーをコピーする必要がありますか?

于 2013-09-18T14:21:28.933 に答える