SQLserverでコマンドプロンプトからSQLを実行する

今週は弊課に新人がいらっしゃいました。

その為、システム利用に関するユーザー追加依頼がチラホラとありまして。

 

中でもちょっと面倒だなと思ったのが、SQLserverのユーザ追加。

管理中のシステムにおいて、DB(全部SQLserver)接続ユーザは個人別になっており、

ユーザの立場によって割り当てる権限(ロール)が決まっています。

私はそれを付与する立場です。

何が出来るか出来ないか、私の指先一つです。ふひひ。

 

 

大きく3つ(本番環境、結合環境、単体環境)に区分される環境に、

それぞれ数台ずつのDBサーバ(1サーバ1インスタンス)、

各インスタンスにはいくつかのデータベース。

ユーザの立場によって使うデータベースはバラバラ。

 

今回は急かされたのもあっていつもどおりにSSMSで接続して作業してたのですが、

コマンドラインでパパパっと出来るんじゃないのかー、と思って調べてみました。

 

 

■SQLCMD

そういう訳でSQLCMDです。

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

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

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

利用前提環境

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

私のPCにはSQLserverを入れてるのですが、ODBCドライバは入って無い状態でした。

インストールで躓く事は特にないと思います。

 

■使ってみる

コマンドプロンプトを起動して SQLCMD と叩くだけ。

管理者モードで起動する必要もなく、パスも通してくれてます。

 

じゃあなんか適当にSQLを実行してみようかと

あれ。

どうやったら実行出来るんだろ?まだDBに繋がっていないとかかな?DB変えてみよ。

あっ

 

なるほど。goで実行、そういえばそうでしたね。

 

うんうん。

 

 

抜けるときはgo不要です。

 

さて、別サーバに接続するには…

-H -U -P あたりでしょうか。

 

 

来週出社したら試してみたいと思います。

 

余談ですが、SQLserverでサーバとかインスタンスとか言うとややこしいですね。

発言者のバックボーンによって、何を指してるのかが違ったりして…

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です