ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

SQLCMDでSELECT結果をCSV出力する。

SELECT文の結果をSQLCMDを利用し、CSV出力する

query.sql

クエリを指定したファイル

SET NOCOUNT ON;

SELECT 
       [Code]
      ,[Name]
  FROM [dbo].[Data] ;

SET NOCOUNT ON;を削除すると件数が一緒に出力される。

SQLCMD

query.sqlを読み取り、output.csvファイルへ出力する。

SQLCMD -S localhost -U sa -P {password} -d {dbname} -i query.sql -s, -W -h -1 -o output.csv
  • オプションについて
命令 説明
-S サーバ名
-U ログイン
-P パスワード
-d データベース
-i スクリプトファイル
-s 区切り文字
-W 余計な空白を省く
-h -1でヘッダ非表示
-o 出力ファイル
-v 変数 (param='001' => $(param))

-h オプションについて

-h -1の場合、ヘッダーが一切出力されなくなる。

001,Tokyo
002,Osaka
003,Nagoya
004,Hakata
005,Yokohama

-hオプションなしの場合

Code,Name
----,----
001,Tokyo
002,Osaka
003,Nagoya
004,Hakata
005,Yokohama