Microsoft SQL Server には、SQL Server データベースのテーブルまたはビューに大きなファイルをすばやく一括コピーするための bcp という名前の一般的なコマンド ライン ユーティリティが含まれています。 SqlBulkCopy クラスを使用すると、同様の機能を提供するマネージ コード ソリューションを作成できます。 SQL Server のテーブルにデータを読み込むには、INSERT ステートメントを使用するなどの方法もありますが、SqlBulkCopy を使用すれば他の方法よりもパフォーマンス面で大幅に有利になります。
SqlBulkCopy クラスを使用すると、SQL Server のテーブルにのみデータを書き込むことができます。 ただし、データ ソースは SQL Server に限定されません。 DataTable インスタンスにデータを読み込むか、 IDataReader インスタンスで読み取ることができる限り、任意のデータ ソースを使用できます。
SqlBulkCopy クラスを使用すると、次のことを実行できます。
単一の一括コピー操作
複数の一括コピー操作
トランザクション内での一括コピー操作
注
SqlBulkCopy クラスがサポートされていない、バージョン 1.1 以前の .NET Framework では、オブジェクトを使用して、SQL Server Transact-SQLBULK INSERTSqlCommand ステートメントを実行できます。
このセクションにて
一括コピーのセットアップ例
バルク コピーの例で使用されるテーブルについて説明します。また、AdventureWorks データベースにテーブルを作成する SQL スクリプトを提供します。
単一の一括コピー操作
SqlBulkCopy クラスを使用して SQL Server のインスタンスにデータの 1 つの一括コピーを実行する方法と、Transact-SQL ステートメントとSqlCommand クラスを使用して一括コピー操作を実行する方法について説明します。
複数の一括コピー操作
SqlBulkCopy クラスを使用して、データの複数の一括コピー操作を SQL Server のインスタンスに実行する方法について説明します。
トランザクション操作と一括コピー操作
トランザクション内で一括コピー操作を実行する方法、およびトランザクションをコミットまたはロールバックする方法について説明します。