bcpユーティリティは、SQLServerテーブルから、
データを一括でインポート・エクスポートしたりすることができます。
SQLServerから、CSVファイルを作成したり、取り込んだりといった場合に、
使用したことがある人も、多いのではないでしょうか。
先日、T-SQLのストアドから、bcpユーティリティを使用して、
CSVファイルを作成する時に、クエリのエラーになってしまいました。
「ANY」という列名だったので、エラーは、
「キーワード 'ANY' 付近に正しくない構文があります。」でした。
T-SQLの記述ミスだと思っていたのですが、
SQL中に「ANY」は使用していませんでした。
調べていくうちに、対象テーブルの列名に、
「ANY」が含まれていると気がつきました。
どうにか簡単に修正できないか、と調べていくと
-qオプションというものを発見しました。
-qオプションは、空白や引用符を含むデータベースを指定する時に使います。
また、空白や引用符を含んでいる所有者、テーブル、
ビューの名前について、使用する時にも使うことができます。
参考:http://msdn2.microsoft.com/ja-jp/library/ms162802.aspx
この-qオプションを使用したところ、解決することができました。
-qオプションは、列名に予約語が含まれている時にも、有効なようです。
予約語が命名されているテーブルに対して、bcpコマンドを使用する時には、
試してみてください。