【SQL Server】sqlcmdが使えない。SSMSはインストールしたのに・・
SSMS(SQL Server Management Studio)でCSVエクスポートする方法を書きましたが、SSMSを起動しなくてもSQL ServerのデータをCSVで取得できないかなぁ、と。
で、調べてみたところsqlcmdという便利なツールがあるらしい。
Qiita SQLServerのデータをCSVに出力するバッチファイルを作ろう
sqlcmdはコマンドラインから実行できるのでバッチファイル化できるし、まさに求めていたものという感じです。さっそく使ってみようと思いましたが

'sqlcmd' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 |
SSMSをインストールすると使えるようになるという情報を見かけたのですが・・・初めはpathが通っていないだけなのかなと思ったのですが、そもそもsqlcmdの実態(実行ファイル)が見つからない・・
知人に確認したところ、彼いわく「SSMSをインストールしたら勝手に使えるようになっていた」「pathも勝手に通ってた」ということです。もしかして、SSMSのバージョンによる違いかな?
環境
今回試した環境は下記です。
OS Windows 10
SSMS 18.5
ちなみにSSMSをインストールしただけでsqlcmdが使えると言った知人のSSMSバージョンは16.5でした。
結局SQLCMDをインストール
sqlcmdを使えている人にsqlcmd.exeの実態がどこにあるか教えてもらって、自分の環境でそれっぽいところを探してみましたが、やっぱり実行ファイルが無い!どうもSSMSのバージョンによってはインストーラーにsqlcmdが含まれていないらしいという結論に至ります。
sqlcmdは個別にインストールできるみたいだったので、下記よりインストーラーをダウンロード。
Microsoft SQLドキュメント sqlcmd Utility

SQLCMDにpathを通す
インストール完了したのでさっそくコマンドプロンプトでsqlcmdを叩いてみたのですが・・状況変わらず・・

ただSQLCMD.exeはちゃんとインストールされているようでした。

インストール時に自動でpathを通してくれないようだったので、パスを通します(pathの通し方は割愛)。私の場合は実行ファイルが下記にインストールされていたので、ここにパスを通します。
C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn |
sqlcmdが使えるようになりました!
