Insight Technology

2021.11.05

ローカルマシンにインストールせずにコマンド SQL クライアントを使う (SQL Server 編)

このエントリーをはてなブックマークに追加

こんにちは。インサイトテクノロジーの松尾です!

今年の札幌マラソンもコロナのために 中止が決定されたようです、、、残念。 ですが、オンラインイベントはありました!そして、参加しました♪

前々回の私のブログでは、Dockerを使って psql や mysql コマンドを実行する方法を紹介しました。 そして、前回の私のブログでは、同様に sqlplus で Oracle Cloud へ接続してみました。

さて、ちょっとマンネリ感はありますが、ここまでやったら SQL Server を試さないわけにはいかないので、ご紹介しておきます。

sqlcmd を Docker で使用するには?

なんと、オフィシャルのツールのイメージ がありました。 そのため以下のように接続することが可能です。

docker run -it --rm mcr.microsoft.com/mssql-tools /opt/mssql-tools/bin/sqlcmd -S HOSTNAME -U USERNAME -d DATABASE

HOSTNAME, USERNAME, DATABASE は、それぞれ、ホスト名、ユーザー名、データベース名です。接続後にパスワードの入力が要求されます。

初回の実行時などは、イメージのダウンロード等が行われるため、以下のような感じで処理されます。パスワードを入力すると接続完了です。

$ docker run -it --rm mcr.microsoft.com/mssql-tools /opt/mssql-tools/bin/sqlcmd -S xxxxxxxxxxxx.database.windows.net -U insight -d testsqldb
Unable to find image 'mcr.microsoft.com/mssql-tools:latest' locally
latest: Pulling from mssql-tools
ae79f2514705: Pull complete
5ad56d5fc149: Pull complete
170e558760e8: Pull complete
395460e233f5: Pull complete
6f01dc62e444: Pull complete
c8578e10f883: Pull complete
b536ad59f00c: Pull complete
993481bbb8d3: Pull complete
100943e5d9cb: Pull complete
749f0e510ec7: Pull complete
920a52e94cef: Pull complete
7cf0c7ba476e: Pull complete
2d6e05bfcbd2: Pull complete
Digest: sha256:62556500522072535cb3df2bb5965333dded9be47000473e9e0f84118e248642
Status: Downloaded newer image for mcr.microsoft.com/mssql-tools:latest
Password:
1> SELECT @@VERSION;
2> go

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Azure (RTM) - 12.0.2000.8
        Apr 29 2021 13:52:20
        Copyright (C) 2019 Microsoft Corporation


(1 rows affected)
1>

余談ですが、もちろん接続先データベースは、Azure SQL Database で確認しました!

Oracle よりも全然簡単でしたね!

SQL Server へ接続する際は SSMS(SQL Server Management Studio)を使うケースが多いとは思いますが、どうしても SSMS をインストールしたくない場合や、sqlcmd で接続する必要がある場合にはぜひご活用ください。

おわりに

今回、SQL Server のコマンドクライアント sqlcmd を Docker で使用する方法をご紹介しました。

今回で、この Docker でコマンド sql クライアントを使うシリーズは終了です。 次回のネタも、どうぞお楽しみに!

開発メンバー募集中デス。

インサイトテクノロジーにご興味を持たれたエンジニアの方、ぜひご連絡をお待ちしております♪

ページトップへ