Microsoft SQL Server には、SQL Server データベースのテーブルまたはビューに大きなファイルをすばやく一括コピーするための bcp という名前の一般的なコマンド ライン ユーティリティが含まれています。
SqlBulkCopy クラスを使用すると、同様の機能を提供するマネージド コード ソリューションを記述できます。 SQL Server テーブル (INSERT ステートメントなど) にデータを読み込む方法は他にもありますが、SqlBulkCopyはそれらのテーブルよりも大きなパフォーマンス上の利点があります。
SqlBulkCopy クラスは、SQL Server テーブルにのみデータを書き込みます。 データ ソースは、SQL Serverに限定されません。 DataTable クラスにデータを読み込むか、IDataReader インターフェイスを介して公開する任意のソースを使用します。
SqlBulkCopyクラスでは以下のような動作が可能です:
単一の一括コピー操作
複数の一括コピー操作
トランザクション内での一括コピー操作
注
サーバーからアクセス可能なファイルからデータを読み込むには、Transact-SQL (T-SQL) の BULK INSERT ステートメントを SqlCommand とともに実行します。 この操作は、クライアントからデータを送信する SqlBulkCopyとは異なり、サーバー上のファイルを読み取ります。
このセクションにて
一括コピーのセットアップ例 一括コピーの例で使用されるテーブルについて説明し、AdventureWorks データベースにテーブルを作成するための SQL スクリプトを提供します。
単一の一括コピー操作SqlBulkCopy クラスを使用して SQL Server のインスタンスにデータの 1 つの一括コピーを実行する方法と、Transact-SQL ステートメントと SqlCommand クラスを使用して一括コピー操作を実行する方法について説明します。
複数の一括コピー操作SqlBulkCopy クラスを使用して、データの複数の一括コピー操作を SQL Server のインスタンスに実行する方法について説明します。
トランザクション操作と一括コピー操作 トランザクションをコミットまたはロールバックする方法など、トランザクション内で一括コピー操作を実行する方法について説明します。