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でサーバとかインスタンスとか言うとややこしいですね。

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

 

Windows10の詳細バージョン確認

Windows10自体のバージョンが求められるケースは割と多いのですが、

パッと見て分かる所には書いていないので、よく失念して調べたりします。

備忘録の意味も兼ねて、ここに記載します。

 

1.winverコマンド

コマンドプロンプトから winver 実行。これが一番簡単便利ではないでしょうか。

 

2.設定から

[スタートメニュー]>[設定]>[システム]>[バージョン情報]

画面下部に以下の表示があります。

 

3.システム情報から

コマンドプロンプトで systeminfo 実行。

OS バージョン: の値を確認します。

ビルドバージョンしか表示されないのですが、Microsoftの公開ドキュメントに、

ビルドバージョンとWindows10バージョンの対応表が掲載されています。

Windows 10 リリース情報

対応表にはサービス終了日が掲載されているので、別の用途で参照する事もありそうですね。

5分で出来る!HTTPサーバonWindows10

初心者・未経験でITの世界に飛び込む方がどんどん増えてるみたいですね。

そういう方向けの教育+転職支援サービスもあるようで。

私が仕事を探していた頃にそういうものがあれば、活用していたかも知れません。

していないかも知れません。やっぱり独学だったような気もします。

 

ですが、「とにかくやってみたい!だけど何をすればいいか解らない!」

といった独学ならでは(?)の初歩的な疑問に悩んだ事も多々ありました。

BASICしか知らなかった私がC言語に初めて触れた時の悩みは、

「Cってプログラム書いた後どうやって動かすの!?」でした。

(BASICはコード書いてRUNすれば実行された)

 

 

Web系のプログラムを勉強してみたい!っていう人が居たら、

やっぱり自由に触れるHTTPサーバがあった方がやりやすいのでは?

そう思って自分のPCにIIS環境を構築してみたらすごく簡単だったので。

テスト環境構築の一助になればと思い、以下に手順を書いてみます。

 

 

 

■使用環境

Windows 10 Pro(バージョン1909)

 

 

■作業手順

1.コントロールパネルを開く

 

2.[プログラム]をクリック

 

3.[Windowsの機能の有効化または無効化]をクリック

 

4.[インターネットインフォメーションサービス]にチェックを付けてOKをクリック

 

5.スタートメニューから[Windows管理ツール]>[インターネットインフォメーションサービス]をクリック

 

6.IISマネージャ画面が表示される

 

7.以下のどちらかの方法でドキュメントルートを参照

A:左ペインのツリーから[Default Web Site]を右クリックして、[エクスプローラー]をクリック

B:[ディレクトリの参照]アイコンをクリックし、右ペインの操作メニューから[基本設定]をクリックして、[物理パス]に表示された値を、エクスプローラーのアドレスバーにコピー&ペースト

 

8.ドキュメントルートのフォルダが表示される

 

9.ブラウザを開き(ここではIE)、アドレスバーに下記URLを入力する

http://localhost/

 

この時点で、HTTPサーバへのアクセスが出来る状態になっています。

ここまでなら、5分でなんとかなるんじゃないかと思います。

 

既にApacheでWebサーバ立ててるとか、Webサーバを内包するアプリ環境があるとか、

そういう場合にはポートがバッティングして上手くいかない事もあると思いますが、

そのレベルに有る方は意味も修正手順も分かるだろうし割愛しても問題ないでしょう。

 

 

 

10.先程開いたドキュメントルートのフォルダに、「Hello」というフォルダを作ります。

 

11.「world.htm」というファイルを作成し、Helloフォルダの中にコピーします。

htmファイルの中身は適当で構いません。

<!– サンプル –>

<html>
<head>
    <title>testpage</title>
</head>
<body>
Under construction!
</body>
</html>

 

12.ブラウザのアドレスバーに下記URLを入力する

http://localhost/hello/world.htm

 

 

 

基本のキまでも行かないくらいのレベルですが、まずはここまで。

ここから、やりたい事に応じて色々と設定が必要になると思います。