1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

BCPコマンドのメモ

Posted at

概要

BCPコマンドを利用してテーブルのレコードをCSVファイルに出力及びテーブルへ登録するコマンドのメモです。

BCPとは?

b ulk c opy p rogram ユーティリティ (bcp) は、Microsoft SQL Server のインスタンスと、ユーザー指定の形式のデータ ファイルとの間でデータの一括コピーを行います。 bcp ユーティリティを使うと、多数の新規行を SQL Server テーブルにインポートしたり、データをテーブルからデータ ファイルにエクスポートしたりできます。 このユーティリティでは Transact-SQL の知識は必要ありません。ただし、 queryout オプションと同時に使う場合はその知識が必要になります。 データをテーブルにインポートするには、そのテーブル用に作成されたフォーマット ファイルを使用するか、テーブルの構造およびテーブルの列に有効なデータの型を理解しておく必要があります。

・参照サイト
https://docs.microsoft.com/ja-jp/sql/tools/bcp-utility?view=sql-server-ver15

bcpによる一括エクスポート

次のコマンドでテーブルのレコードをtsvファイルに保存することが確認できます。

# -d [DB SCHEMA NAME]の指定がない場合
C:\temp>cmd /c "bcp DEV.dbo.members out .\members.tsv -w -S XXX.XXX.XXX.XXX -U userid -P userpw

Starting copy...

2 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 15     Average : (133.33 rows per sec.)

# -d [DB SCHEMA NAME]を指定した場合
C:\temp>bcp dbo.members OUT C:\temp\members.tsv -c -t\t -r\n -S XXX.XXX.XXX.XXX -U userid -P userpw -d DEV

Starting copy...

2 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 16     Average : (125.00 rows per sec.)

■テーブルのレコード情報
image.png

■TSVファイルに保存された内容
image.png

■TSVファイルの内容を変更
次の内容にレコード情報を変更します。

image.png

bcpによる一括インポート

次のコマンドを利用してTSVファイルの内容をテーブルに登録ができることを確認します。

C:\temp>bcp dbo.members IN C:\temp\members.tsv -c -t\t -r\n -S XXX.XXX.XXX.XXX -U userid -P userpw -d DEV

Starting copy...

2 rows copied.
Network packet size (bytes): 4096
Clock Time (ms.) Total     : 16     Average : (125.00 rows per sec.)

C:\temp>

■登録されたテーブルのレコードを確認
image.png

終わりに

今までCSV、TSVファイルをサーバに配置してからインポートする認識でしたが、このBCPコマンドを利用するとサーバへファイルを配置しなくてもローカルからサーバへ直接インポートできた認識です。
大量のレコードをBCPコマンドからインポートする場合、
列が何個でレコード数何件、TSVファイルはXXXMB,XGBに対してどのくらいかかるか比較もしてみたいですね。
とりあえず今回はBCPコマンドでテーブルのレコードをエクスポートとインポートを確認ができました。

参照サイト

・bcp を使用した一括データのインポートおよびエクスポート (SQL Server)
https://docs.microsoft.com/ja-jp/sql/relational-databases/import-export/import-and-export-bulk-data-by-using-the-bcp-utility-sql-server?redirectedfrom=MSDN&view=sql-server-ver15

・フォーマット ファイルの作成 (SQL Server)
https://docs.microsoft.com/ja-jp/sql/relational-databases/import-export/create-a-format-file-sql-server?view=sql-server-ver15

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?