SQL Server での一括コピー操作

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 のインスタンスに実行する方法について説明します。

トランザクション操作と一括コピー操作 トランザクションをコミットまたはロールバックする方法など、トランザクション内で一括コピー操作を実行する方法について説明します。

こちらも参照ください