ITエンジニアの成長ブログ

ITエンジニアとして行う勉強の発信&日々の生活で体験した楽しいことをゆるく発信

SQL Serverをコマンドラインで操作する

今回は、SQL Serverコマンドラインで操作する方法を簡単に確認していきたいと思います。
以下の内容は、Windows 10のコンピュータにSQL Serverをインストールして確認しています。

コマンドラインツール

SQL ServerGUIで操作するには、あたりまえですが専用のツールを使用する必要があります。ツール自体は、SQL Serverをインストールしていれば同時にインストールされているかと思います。
コマンド名は、sqlcmdです。このコマンドを使用することで、コマンドラインで各種SQL文を実行できます。

個別でインストールする場合は、以下のリンクよりインストーラをダウンロードすることができます。
sqlcmd ユーティリティ - SQL Server | Microsoft Docs

基本的な操作

以下から簡単な操作を紹介していきたいと思います。

ログイン

SQL Serverへログインする方法について、Windows認証とSQL Server認証の2つを紹介します。

SQL Server認証
パスワードの「-P」オプションは省略できます。省略すると、パスワードを入力するためのプロンプトが表示されます。

sqlcmd -S <サーバー名> -U <ユーザー名> -P <パスワード>
f:id:mr_star:20211025183936p:plain
SQL Server認証でログイン

Windows認証
現在ログオンしているユーザー名とパスワードが使用されて、SQL Serverへログインします。

sqlcmd -E -S <サーバー名>
f:id:mr_star:20211025183758p:plain
Windows認証でログイン

上記の通り、ログイン実行後に「1>」というプロンプトが表示されればログイン成功になります。

SQL文を実行

簡単に現在日時を表示するSQL文を例に紹介します。

SELECT GETDATE();
f:id:mr_star:20211025184306p:plain
GETDATE()コマンド実行

上記のようにコマンドを記載してEnterキーを押下してもまだ実行されません。
SQL Server固有の概念である、バッチを区切るコマンド「GO」を実行することでSQL文が実行されます。

f:id:mr_star:20211025184439p:plain
GETDATE()コマンド実行のあとにGOコマンド実行

GOコマンド実行後にSELECT GETDATE()の結果が返却されました。このように、SQL文とGOコマンドをセットで実行する必要があります。

他、直接SQL文を実行する場合は「-Q」オプションに実行したいSQL文を記載します。以下のような感じで使います。

f:id:mr_star:20211025190154p:plain
sqlcmdの「-Q」オプションでSQL文を直接実行する
ログアウト

ログアウトは、以下のように「exit」コマンドを押下すればOKです。

f:id:mr_star:20211025184916p:plain
exitコマンドでsqlcmdコマンドをログアウト

他にもいろいろなオプションあります

上記では本当に基本的なオプションしか紹介していませんが、他にもたくさんオプションがありますので別途確認していただければと思います。

f:id:mr_star:20211025190457p:plain
sqlcmdのオプション一覧表示

おわりに

いかがでしたでしょうか。普段、SSMS(SQL Server Management Studio)でSQL ServerGUIで操作している方々には新鮮な内容ではなかったでしょうか。

GUIは、マウスで操作できるのでとても簡単に色々なことが行えますが、本番環境などでは誤ってボタンを押下してしまう危険性があると自分は感じています。

GUIだけではなく、コマンドラインツールが使えることで色々と日々の業務の効率性も変わってくるのではと思います。
たとえば、コマンドラインから実行できるということは、バッチ化して自動化することができます。

適材適所でツールを使っていければなぁと思います。
最後までお読みいただきありがとうございました。今回はこの辺で失礼いたします。