DB

SQL Serverでbcpコマンドを利用してみた

bcpコマンドを利用すると、SQL ServerのテーブルのデータをCSVファイルに出力したり、逆にCSVファイルのデータをSQL Serverのテーブルに書き込んだりすることができる。

今回は、bcpコマンドを利用してみたので、その手順を共有する。

なお、bcpコマンドについては、以下のサイトを参照のこと。
https://mr-star.hatenablog.com/entry/sqlserver/020

前提条件

下記記事のように、A5M2を利用してSQL Serverに接続できていること。

A5M2を利用して各DBに接続してみたA5M2(A5:SQL Mk-2)は、SQL文の入力支援やER図作成などの機能を備えていて、Oracle、MySQL、PostgreSQ...

やってみたこと

  1. SQL Serverにテーブルを作成
  2. bcpコマンドによるCSVエクスポート
  3. bcpコマンドによるCSVインポート

SQL Serverにテーブルを作成

bcpコマンドの実行を行うために、SQL Serverに新しくemployeeテーブルを作成し、データを追加する。その手順は、以下の通り。

1) create table文を利用して、employeeテーブルを作成する。

テーブルの作成_1

2) A5M2上で、複数のinsert文を全て選択した状態で、実行ボタンを押下することで、employeeテーブルにデータをまとめて追加する。

テーブルの作成_2_1 テーブルの作成_2_2

3) select文を利用して、employeeテーブルに追加したデータが出力されることを確認する。

テーブルの作成_3
「HD Video Converter Factory Pro」は動画の形式変換や編集・録画等を行える便利ツールだった動画の形式変換や編集・録画等を行える便利ツールの一つに、「HD Video Converter Factory Pro」があります。ここ...

bcpコマンドによるCSVエクスポート

bcpコマンドを利用すると、SQL Serverのテーブルのデータを、CSVファイルに出力することができる。その手順は、以下の通り。

1) スタートメニューを起動し、「Windows システムツール」から「コマンドプロンプト」を選択する。
bcp_エクスポート_1

2) bcpコマンドの配置されているディレクトリに移動する。

bcp_エクスポート_2_1

 なお、以下の「bcp.exe」が、bcpコマンドになる。
bcp_エクスポート_2_2

3) bcpコマンドを利用して、employeeテーブルのデータをCSVファイル出力する。

bcp_エクスポート_3

なお、bcpコマンドは、「bcp (テーブル名) out (出力するCSVファイル名) -c -q -S (ホスト名) -U (ユーザー名) -P (パスワード) -t (区切り文字) -d (データベース名)」という形式で指定している。

4) 3)で出力されたCSVファイルの内容は、以下の通り。
bcp_エクスポート_4

5) bcpコマンドを利用して、SELECT文で指定したデータをCSVファイル出力する。

bcp_エクスポート_5

なお、bcpコマンドは、「bcp (SELECT文) queryout (出力するCSVファイル名) -c -q -S (ホスト名) -U (ユーザー名) -P (パスワード) -t (区切り文字) -d (データベース名)」という形式で指定している。

6) 5)で出力されたCSVファイルの内容は、以下の通り。
bcp_エクスポート_6

「CODE×CODE」は、需要の高い技術(AWS, Python等)を習得できるプログラミングスクールスクールだった近年、さまざまな会社でクラウド(特にIaaSやPaaSのパブリッククラウド)の需要が非常に高まっていて、クラウドサービスによるシステム開...

bcpコマンドによるCSVインポート

bcpコマンドを利用すると、CSVファイルのデータを、SQL Serverのテーブルに追加することができる。その手順は、以下の通り。

1) インポートする予定のCSVファイルの内容は、以下の通り。
bcp_インポート_1

2) インポートする前のemployeeテーブルのデータは、以下の通り。
bcp_インポート_2

3) コマンドプロンプトを起動し、bcpコマンドの配置されているディレクトリに移動する。

bcp_インポート_3

4) bcpコマンドを利用して、CSVファイルのデータをemployeeテーブルに追加する。

bcp_インポート_4

なお、bcpコマンドは、「bcp (テーブル名) in (インポートするCSVファイル名) -c -q -S (ホスト名) -U (ユーザー名) -P (パスワード) -t (区切り文字) -d (データベース名)」という形式で指定している。

5) インポートした後のemployeeテーブルのデータは、以下の通り。
bcp_インポート_5

6) 4)で実行したコマンドを再度実行すると、以下のように、PRIMARY KEY重複エラーとなってしまうことが確認できる。
bcp_インポート_6

要点まとめ

  • bcpコマンドを利用すると、SQL ServerのテーブルのデータをCSVファイルに出力したり、逆にCSVファイルのデータをSQL Serverのテーブルに書き込んだりすることができる。