Bcpは、データをデータベースに取り込む最も速い方法です
Microsoft SQL Serverのバルク・コピー(bcp)コマンドは、コマンド行から大量のレコードを直接挿入する機能を提供します。 bcpユーティリティは、コマンドラインからの愛好家にとって有用なツールであるだけでなく、バッチファイルやその他のプログラム的な方法からSQL Serverデータベースにデータを挿入しようとする人にとっては強力なツールです。 データをデータベースに取り込む方法はたくさんありますが、bcpは適切なパラメータで設定すると最も高速です。
bcp構文
bcpを使用するための基本的な構文は次のとおりです。
bcp引数には次の値が入ります。
- Table_nameは、テーブルの完全修飾名です。 たとえば、inventory.dbo.fruitsを使用して、インベントリデータベースのデータベース所有者が所有するフルーツテーブルにレコードを挿入することができます。
- 方向は、データをインポート(「イン」方向)またはエクスポート(「アウト」方向)するかどうかを示します。
- File_nameはファイルへのフルパスです。 たとえば、C:\ fruit \ inventory.txtファイルをインポートできます。
- オプションを使用すると、一括操作のパラメータを指定できます。 たとえば、-mオプションで許容される最大エラー数を指定できます。 -xオプションを使用してXMLファイル形式を指定することもできます。 完全なリストについては、Microsoftのbcpマニュアルを参照してください。
bcpのインポートの例
すべてをまとめるには、 インベントリデータベースにフルーツテーブルがあり、ハードドライブに保存されているテキストファイルからすべてのレコードをそのデータベースにインポートするとします。 次のbcpコマンド構文を使用します。
bcp inventory.dbo.fruits in "C:\ fruit \ inventory.txt" -c -Tこれにより、次の出力が生成されます。
C:¥> bcp inventory.dbo.fruits in "C:¥fruit¥inventory.txt" -c -Tコピーを開始... 36行がコピーされました。 ネットワークパケットサイズ(バイト):4096クロック時間(ミリ秒)合計:16平均:(2250.00行/秒)C:\>そのコマンドラインには2つの新しいオプションがあります。 -cオプションは、インポート・ファイルのファイル形式がタブ区切りのテキストで、各行が改行されることを指定します。 -Tオプションは、bcpがWindows認証を使用してデータベースに接続する必要があることを指定します。
bcpエクスポートの例
操作の方向を "in"から "out"に変更することにより、bcpを使用してデータベースからデータをエクスポートできます。たとえば、次のコマンドを使用してフルーツテーブルの内容をテキストファイルにダンプできます。
bcp inventory.dbo.fruits out "C:\ fruit \ inventory.txt" -c -Tコマンドラインでの表示方法は次のとおりです。
C:¥> bcp inventory.dbo.fruits out "C:¥fruit¥inventory.txt" -c -Tコピーを開始... 42行がコピーされました。 ネットワークパケットサイズ(バイト):4096クロック時間(ミリ秒)合計:1平均:(42000.00行/秒)C:\>それはbcpコマンドのすべてです。 バッチファイルまたはDOSコマンドラインにアクセスできる他のプログラムからこのコマンドを使用して、SQL Serverデータベースからのデータのインポートおよびエクスポートを自動化できます。