ほぼ同じデータ セットを持つ 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/テーブルレベルバックアップ
Google では他にも多くの方法が見つかります:
単一のテーブルをエクスポートしたら、それを何らかの方法 (rsync、SFTP、scp など) で転送し、インポートします。