CSVファイルをダンプする

【Microsoft SQL Server】 BCPユーティリティの使用法を参考に SQL server のテーブルをCSVファイルにダンプしました。
まず、テーブルのフォーマットを取得します。

>bcp DBNAME.dbo.tablename out c:\c\db\tablename.txt -S HOSTNAME -U username -P password

フィールド cd [int] のファイル ストレージ型を入力してくださいint
フィールド cd [0] のプレフィックス長を入力してください0
フィールド ターミネータ [none] を入力してください

フィールド hoge [int] のファイル ストレージ型を入力してくださいint
フィールド hoge [0] のプレフィックス長を入力してください0
フィールド ターミネータ [none] を入力してくださいnone

フィールド name [nvarchar] のファイル ストレージ型を入力してくださいnvarchar
フィールド name [1] のプレフィックス長を入力してください1
フィールド ターミネータ [none] を入力してください

フィールド cd [int] のファイル ストレージ型を入力してくださいint
フィールド cd [0] のプレフィックス長を入力してください0
フィールド ターミネータ [none] を入力してください

フィールド memo [nvarchar] のファイル ストレージ型を入力してくださいnvarchar
フィールド memo [1] のプレフィックス長を入力してください1
フィールド ターミネータ [none] を入力してください

このフォーマット情報をファイルに保存しますか? [y/n]y
ホスト ファイル名 [bcp.fmt]tablename.fmt

コピーを開始しています...
SQLState = 22005, NativeError = 0
Error = [Microsoft][SQL Native Client]キャストした文字コードが正しくありません。

200 行コピーされました。
ネットワーク パケット サイズ (バイト): 4096
クロック タイム (ミリ秒) 合計     : 1      平均 : (200000.00 行/秒)

最後に指定した tablename.fmt が出来ます。

9.0
5
1  SQLINT      0   4   ""       1     cd      ""
2  SQLINT      0   4   "none"   2     hoge    ""
3  SQLNUMERIC  1   19  ""       3     name    Japanese_CI_AS
4  SQLINT      0   4   ""       4     cd      ""
5  SQLNUMERIC  1   19  ""       5     memo    Japanese_CI_AS

fmt ファイルの意味は以下のようなものなのだそうです。

9.0 --- バージョン
5   --- フィールド数
1.データファイルのフィールド番号
2.データ型
3.プレフィックス長
4.フィールドの長さ
5.フィールドの終端文字
6.SQL Serverデータベース内でのフィールド番号
7.SQL Serverテーブルのフィールド名(実際の名前でなくてもOK、空白 NG)
8.行の照合順序

1.データ型が全て『SYBCHAR』
2.プレフィックス長はゼロ
3.フィールドの区切りに『,』を終端文字に『\r\n』を指定します。

9.0
5
1  SYBCHAR    0   4   ","       1     cd      ""
2  SYBCHAR    0   4   ","       2     hoge    ""
3  SYBCHAR    0   19  ","       3     name    Japanese_CI_AS
4  SYBCHAR    0   4   ","       4     cd      ""
5  SYBCHAR    0   19  "\r\n"    5     memo    Japanese_CI_AS
>bcp DBNAME.dbo.tablename out c:\c\db\tablename.csv  -f c:\c\db\tablename.fmt -S HOSTNAME -U username -P password

コピーを開始しています...
201 行コピーされました。
ネットワーク パケット サイズ (バイト): 4096
クロック タイム (ミリ秒) 合計     : 15     平均 : (13400.00 行/秒)

tablename.csv が作成されます。