SQLCMD(SQLServerでコマンドプロンプト/CUIからSQL実行) | 人生中盤から色々学ぶ(ブ)ログ

人生中盤から色々学ぶ(ブ)ログ

IT、経済、英語、その他今必要だなと思う事を学びつつ、自分用の記録ついでにブログ化。
あん時やっときゃ良かった、をそろそろ終わりにしたい!

SQLServerでSQLを実行する際、わかりやすい方法としては

SQL Server Management Studio(SSMS)にて新しいクエリを作成する事ですが、

連続作業の場合にはコマンドラインからの実行が便利です。

 

そのためのツールがSQLCMDです。

sqlcmd ユーティリティを使用すると、Transact-SQL ステートメントやシステム プロシージャ、スクリプト ファイルを使用可能なさまざまなモードで入力できます。

  • コマンド プロンプト。
  • クエリ エディターでの SQLCMD モード。
  • Windows スクリプト ファイル。
  • SQL Server エージェント ジョブのオペレーティング システム (Cmd.exe) ジョブ ステップ。

このユーティリティでは、ODBC を使用して、Transact-SQL バッチを実行します。

 

利用前提環境

Windows インストーラー 4.5 と Microsoft ODBC Driver for SQL Server 17 の両方が必要です。

 

■利用法

コマンドプロンプトを起動から"SQLCMD"です。

管理者モードで起動する必要もなく、特に設定しなくてもパスが通っています。

 

オプションには以下のようなものがあります。

 

クエリ実行オプションを指定しない場合は対話モードになります。

この場合、クエリ実行の際にはSQL文の次に「GO」を指定します。

use msdb

go

のイメージですね。

 

 

-q または -Q で、コマンドオプションとしてSQL文を指定できます。

2つの違いはSQL文実行後の振る舞いです。

連続実行したいような場合は-Qを指定(コマンド1行ごとにSQLCMDの接続を終了する)がよいでしょう。

 

複数のインスタンスで同じSQL文を実行するような(例:新しいユーザを全DB環境に登録する)場合は、

実行するSQL文をファイルとして用意しておき、-i オプションで読み込ませるのが良さそうです。

 

 

 

 

※本投稿は過去に掲載したものを整理して再掲したものです。