バッチファイルからbcpコマンドを使用して、レコードをエクスポートする

バッチファイルを使用して、
レコードをエクスポートすることができます!

以下の2つの方法を記載します!
・テーブル名のみを指定して、全レコードを取得する
・SELECT文を指定して、条件に合致したレコードを取得する

サンプルプログラムの概要

bcpコマンドを使用して、以下のテーブル「EMPLOYEE」のレコードをcsvファイルへエクスポートします。

サンプルプログラム作成

ファイル名

export_record.bat

記載するコード

★「サーバー名」等の接続情報や「出力フォルダ」について
上部に変数として纏めています。環境に合わせて修正してください。

ここではWindows認証を使用してSQL Serverへ接続しています。
SQL Server認証を使用した方法も記載していますが、コメントアウトしています。

@echo off

REM サーバー名(サーバーのPC名\インスタンス名)
set dbServer=localhost\SQLEXPRESS
REM データベース名
set dbName=sampleDB
REM ユーザー名
REM set userName=sampleUser
REM パスワード
REM set password=password

REM 出力フォルダ
set outputFolder=C:\Users\user\Desktop\sqlserver_sample\export\


REM #####################
REM Windows認証の場合
REM #####################

REM ★テーブル名のみを指定して、全レコードを取得する
bcp EMPLOYEE out %outputFolder%EMPLOYEE.csv -S %dbServer%  -d %dbName% -T -c -t ","

REM ★SELECT文を指定して、条件に合致したレコードを取得する
REM bcp "SELECT TOP(1) * FROM EMPLOYEE" queryout %outputFolder%EMPLOYEE.csv -S %dbServer%  -d %dbName% -T -c -t ","


REM #####################
REM SQL Server認証の場合
REM #####################

REM ★テーブル名のみを指定して、全レコードを取得する
REM bcp EMPLOYEE out %outputFolder%EMPLOYEE.csv -S %dbServer%  -d %dbName% -U %userName% -P %password% -c -t ","

REM ★SELECT文を指定して、条件に合致したレコードを取得する
REM bcp "SELECT TOP(1) * FROM EMPLOYEE" queryout %outputFolder%EMPLOYEE.csv -S %dbServer%  -d %dbName% -U %userName% -P %password% -c -t ","

pause

実行

コピーを開始しています...

2 行コピーされました。
ネットワーク パケット サイズ (バイト): 4096
クロック タイム (ミリ秒) 合計     : 1      平均 : (2000.00 行/秒)
続行するには何かキーを押してください . . .

結果

エクスポートされたcsvファイルをテキストエディタで開くと、レコードがエクスポートされていることが分かります。

00001,鈴木一郎,男,営業課
00002,佐藤次郎,男,経理課

 

バックアップ等のためにレコードをエクスポートする場合は、以下の記事の方法でエクスポートしたほうが、利便性が良いと思います。

タイトルとURLをコピーしました