Skip to main content

Bcpを使用してSQL Serverからデータをインポートおよびエクスポートする

Anonim

Microsoft SQL Serverのバルク・コピー(bcp)コマンドは、コマンド行から大量のレコードを直接挿入する機能を提供します。 bcpユーティリティは、コマンドラインからの愛好家にとって有用なツールであるだけでなく、バ​​ッチファイルやその他のプログラム的な方法からSQL Serverデータベースにデータを挿入しようとする人にとっては強力なツールです。データをデータベースに取り込む方法はたくさんありますが、bcpは適切なパラメータで設定すると最も高速です。

BCP構文

bcpを使用するための基本的な構文は次のとおりです。

bcp

引数には次の値が入ります。

  • テーブル名 表の完全修飾名です。たとえば、inventory.dbo.fruitsを使用して、インベントリデータベースのデータベース所有者が所有するフルーツテーブルにレコードを挿入することができます。
  • 方向 データをインポート(「イン」方向)またはエクスポート(「アウト」方向)するかどうかを示します。
  • ファイル名 ファイルへのフルパスです。たとえば、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データベースからのデータのインポートおよびエクスポートを自動化できます。