回答:
いくつかのオプションがあります。頭に浮かぶ主なものは次のとおりです。
SSIS -SQL Server Integration Services:これはSQL Servers ETLツールであり、ほとんどすべてのソースからほとんどすべての宛先にデータを移動でき、非常に高速です。
BCP-一括コピープログラム:SQL Serverに付属するコマンドラインツールです。テキストファイルをSQL Serverに移動するのは非常に優れています。または、あるSQL Serverからネイティブ形式にエクスポートし、同じ形式を使用して別のSQL Serverにインポートすることもできます。BCPも非常に高速ですが、SSISよりも少し制限があります。
INSERT INTO tablename SELECT fieldlist FROM othertable:これは、同じサーバー上の1つのSQLテーブルから別のSQLテーブルに移動することを前提としています。これは最速ですが、50万行ではかなり大きなトランザクションを調べているか、または言ったように分割する必要があります。
OPENROWSET:これは、さまざまな形式からデータをテーブルにプルできるSQL Server関数です。それはかなり速いはずですが、私はそれをあまり使っていません。
一般的な注意:主キーはmbr_idです。これが(ID列ではなく)ソースデータに格納されているものである場合、ソースデータがmbr_idの順序になっていると、挿入が大幅に速くなります。
使っているので。NET、外部プロセスを呼び出さずにデータを実際にストリーミングできます。テーブル値パラメーターを使用します。詳細とこのメソッドの別のバリエーションへのリンクについては、StackOverflowで私の回答を参照してください。