リモート DB サーバーにテーブルがあるとします。テーブル全体をローカル マシンの sqlserver にコピーしたいと考えています。これを行うためのSQLクエリはありますか? ローカル マシンでテーブル スキーマを作成し、テーブルの内容をリモート サーバーからローカル マシンにコピーする必要がありますか、それともテーブルをそのスキーマと共にローカル マシンに完全にコピーする方法はありますか?
1 に答える
リンク サーバーを使用してから、select * into を使用できます。ただし、後でテーブルに制約/インデックスを作成する必要があります。
または、最初にテーブルを作成し、その他の制約を作成します。今はインデックスを作成したくないかもしれません。これ自体が大きなトピックであり、通常、テーブルのサイズとデータがどのようになるかによって異なります。ただし、同じデータをコピーしている場合。少なくともクラスター化されたインデックスを作成し (リモート テーブルにクラスター化されたインデックスがある場合)、テーブルにデータが入力された後に NC インデックスを作成することをお勧めします。
次に、次のことができます
1.リンクサーバーを使用して挿入を使用します。クラスター化インデックス列で order by を使用します。2. 何らかの理由で連携サーバーを利用できない場合。BCP を使用してリモート サーバーからファイルに出力します。order by を使用して bcp を出力してから、バルク挿入または BCP をローカル システムに入力し、再び order 句を使用します。
ロードする前にテーブルにクラスター化インデックスを作成していない場合は、order 句を使用する必要はありません。次に、テーブルに必要なインデックスを作成できます。