4

ある SQL Server DB から別の SQL Server DB に複数のテーブルをコピーする必要がある状況があります。データベースは両方とも同じインスタンスにあります。私がコピーしているテーブルには、最小で 450 万行が含まれており、サイズは約 40 GB 以上です。

以前に BCP を使用したことがありますが、あまり詳しくはなく、BCP を使用してテーブルからテーブルに直接コピーし、間にファイルに書き込むことができるかどうかについてのドキュメントを見つけることができませんでした。

これは可能ですか?もしそうなら、どのように?

編集: 単純な INSERT を使用しない理由は、サーバーのログ ドライブのスペースが限られているためです。これは、INSERT を試みるとほぼ瞬時に消えてしまいます。試してみましたが、ログ ドライブがいっぱいになると、クエリのペースが急速に遅くなりました。

4

3 に答える 3

7

テーブルレベルのバックアップでの私の答えから

bcp.exeを使用してテーブル レベルのバックアップを実行しています

輸出する:

bcp "select * from [MyDatabase].dbo.Customer " queryout "Customer.bcp" -N -S localhost -T -E

インポートするには:

bcp [MyDatabase].dbo.Customer in "Customer.bcp" -N -S localhost -T -E -b 10000

ご覧のとおり、任意のクエリに基づいてエクスポートできるため、これを使用して増分バックアップを行うこともできます.

于 2013-01-05T17:43:01.190 に答える
2

BCP は、ファイルへのダンプ/ファイルからの読み取り用です。DTS/SSIS を使用して、ある DB から別の DB にコピーします。

MSDNのBCP ドキュメントは次のとおりです。

于 2010-11-03T16:33:45.393 に答える
2

SQL インポート/エクスポート ウィザードがジョブを実行します...同じデータベース (ソースと宛先) に 2 回接続し、1 つのテーブルを別のテーブル (空でインデックス付き) にコピーするだけです。自動数値 ID キー フィールドが存在する場合は無視するように指示することができます。このアプローチは、1M 以上のレコードを超えるテーブルで機能します。

于 2015-09-19T11:39:04.723 に答える