2つの異なるMSSQLサーバー間でDBテーブルをコピーする

2つの異なるMSSQLサーバー間でDBテーブルをコピーする

ほぼ同じデータ セットを持つ 2 台の MSSQL サーバーを実行しています。これは実際には運用/開発セットアップです。

現在、私のワークフローは次のようになっています。 毎日、運用サーバー上の各データベースのバックアップが作成されます。 バックアップをインターネット経由で (数十ギガバイト) 開発サーバーに転送します。 運用サーバーのバックアップを使用して開発サーバーのデータベースを「復元」し、最新のデータ セットを取得します。

私の質問は次のとおりです:

MSSQL サーバー データベースから単一のテーブルを「エクスポート」し、別の MSSQL サーバー内のデータベースにインポートする簡単で迅速な方法はありますか?

私は、間に合わせの POS トリックよりも、「ベスト プラクティス」のような操作に興味があります。

アップデート

Google でいろいろ検索してみたところ、テーブルをエクスポートして実行時にインポートするスクリプトを生成する MSSQL Server の機能を見つけました。別のサーバーにテーブルをインポートする必要があるため、これを使用できません。

答え1

ターゲット サーバーで SQL ごとにデータを直接取得することもできます。ネットワークにアクセスできる場合:

SELECT a.*
INTO <YOUR TARGET TABLE>
FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;',
     'SELECT *
      FROM <YOUR TABLE>
      ') AS a;

ただし、インデックスは自分で作成する必要があります。

または、INSERT を使用します:

INSERT INTO 
<YOUR TARGET TABLE>
FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;',
         'SELECT *
          FROM <YOUR TABLE>
          ') AS a;

答え2

エクスポート部分については DBA で回答されています:

https://dba.stackexchange.com/questions/25755/taking-a-backup-of-a-single-table-in-the-sql-server

SQL サーバー上の単一のテーブルをエクスポートする方法については、Stackoverflow でも何度も回答されています。

https://stackoverflow.com/questions/680552/テーブルレベルバックアップ

https://stackoverflow.com/questions/19698310/backup-a-single-table-with-its-data-from-a-database-in-sql-server-2008

Google では他にも多くの方法が見つかります:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/923d1a5a-2f21-4193-9513-ab944145a58f/データベースからの単一テーブルのエクスポート

単一のテーブルをエクスポートしたら、それを何らかの方法 (rsync、SFTP、scp など) で転送し、インポートします。

関連情報