巨大なテーブルのコンテンツを本番データベースからエクスポートし、データを遠隔地のデータベースにインポートするタスクを与えられました。
テーブルには約45,000,000行あります。データベースで約4 GBのスペースを使用します。
その10列は、int、datetime、およびvarchar(n)<= 255型ですが、一部のvarcharフィールドには、改行と、一括コピーで使用される通常のフィールド区切り文字が含まれています。
行数が多いため、Excelにエクスポートすることはできません。 SSISを使用してFlatfileにエクスポートすることは可能です(約30分かかりました)。ただし、一部のフィールドが分割されているため、再インポートは自動ではありません。
私の現在の考えは
単純な復旧モデルを使用してデータベースに挿入すると、新しいデータベースで最小限のログしか生成されず、この方法はデータをエクスポートする最速の1つであり、本番データベースへの影響は最小限です。
デフォルトではなくフォーマットファイルを使用するBCPが最善の策になると思いました。
あなたの方法はうまくいきます、私は新しいデータベースにデータファイルを事前に割り当てますので、自動拡張する必要はありません。バックアップは、デタッチと同様に機能します。また、移行先サーバーには、同じバージョン以上のSQLが必要です。