web-dev-qa-db-ja.com

SQLServerデータベースの2つのインスタンス間でデータレコードをコピーする方法

SQLServer 2005テストサーバーからライブサーバーにいくつかのレコードをコピーする必要があります。これはフラットなルックアップテーブルなので、外部キーやその他の参照整合性について心配する必要はありません。

ライブサーバーでレコードを再度入力できましたが、これは面倒です。テストサーバーのレコードとテーブルデータ全体をSQLスクリプトにエクスポートして実行できますが、ライブシステムに存在するレコードを上書きするのではなく、追加するだけです。

必要なレコードだけを選択して、それらをライブサーバーに転送するか、それ以外の方法で取得するにはどうすればよいですか? Sharepointがないため、2つのインスタンス間で直接コピーすることができます。

30
Jaymie Thomas

実稼働SQLサーバーとテストSQLサーバーが通信できる場合は、SQL挿入ステートメントを使用するだけで済みます。

最初にテストサーバーで次を実行します。

Execute sp_addlinkedserver PRODUCTION_SERVER_NAME

次に、挿入ステートメントを作成します。

INSERT INTO [PRODUCTION_SERVER_NAME].DATABASE_NAME.dbo.TABLE_NAME   (Names_of_Columns_to_be_inserted)
SELECT Names_of_Columns_to_be_inserted
FROM TABLE_NAME
44
Kwirk

SQL Server Management Studioを使用し、データベースを右クリックして[タスク]、[エクスポート]の順に選択して、エクスポートタスクを実行します。データベースだけでなくサーバーでも機能すると思いますが、よくわかりません。

11
Joe Phillips

SSISパッケージは転送を行うのに最適で、セットアップに文字通り数秒かかります!

3
Mitchel Sellers

Sqlのスクリプトを作成し、他のサーバーで実行すると、迅速でダーティな転送が行われます。これが頻繁に行うことであり、メカニズムをセットアップする必要がある場合、この種の目的のために、古いデータ変換サービス(DTS)に似たSQL Server Integration Services(SSIS)が設計されています。ミニVisual Studio環境でソリューションを開発し、データを移動および変換するための非常に複雑なソリューションを構築できます。

1