刹那(せつな)の瞬き

Willkömmen! Ich heiße Setsuna. Haben Sie etwas Zeit für mich?

VSCodeのmssql拡張機能でSSMS気分を味わう

SQL Server on Linux の公式サイトを読むと、sqlcmd コマンド以外に接続する手段があります。

本来、Windows PC があれば、普通に SSMS (SQL Server Management Studio) から接続して諸々の操作したいのですが、あいにく PC は1台しかないので Ubuntu を起動すると Windows は使えません。

なので、VS Code (Visual Studio Code) から接続する手段を試してみました。

1. 環境

・OS: Ubuntu Desktop 18.04.4 (Linux Kernel 5.3.0-28-generic)
Visual Studio Code (version: 1.41.1)

2. 手順

公式サイトにある手順で進めるだけです。

(1) VS Code をインストールして起動

手順のままです。

(2) mssql 拡張機能をインストール

手順のままです。私は念の為、VS Code を再起動しました。

(3) SQL ファイルを作成するか開く

既に SQL 文が記述された .sql ファイルがあれば、何でも良いのでそれを開く。

なければ、手順にあるように新規作成した後で、VS Code のウィンドウの最下段に「行1、列1  スペース: 4  UTF-8  LF  プレーンテキスト」とか表示されているのがステータスバーなので、そこのプレーンテキストをクリックして、言語モードをSQLにします。

(4) SQL Server への接続

インストール直後だと接続プロファイル (Connection Profile) が存在しないので、まずはこれを作成します。

コマンドパレットで sql とか ms と入力すると候補が表示されるので、スクロールさせてMS SQL: Manage Connection Profilesを選択します。

すぐに次の選択肢が表示されるのでCreateをクリックします。

対話形式でパラメータを1つ1つ入力していくのですが、問いが「英文」なので戸惑うかもしれません。

私の場合は、こんな感じで入力してみました。

問い 補足 入力値または選択
Server name or ADO.NET
connection string
サーバ名を入力 localhost と入力
Database name データベース名を入力 NorthwindJ と入力
SQL Login
Integrated
ログイン認証の種類 SQL Login を選択
User name SQL Server認証のユーザ名 sa と入力
Password SQL Server認証のパスワード abcd1234$ と入力
Yes
No
パスワードを保存する? Yes を選択
Profile Name 接続プロファイルの名前 未入力

うまく接続できると、SSMS みたいにテーブルを開けます。

f:id:infinity_volts:20200131163500p:plain

3. 結果セットを利用する

公式サイトではデータベースを作成する手順も載ってますが、私は表示するところまでで十分です。

ただ、公式サイトをよく読むと、RESULTS に表示されたグリッドの内容をJSON ファイルや Excel ファイルに保存できるようです。

私も実際にやってみました。

f:id:infinity_volts:20200131164733p:plain

確かに選択肢があります。

必要な範囲を選択してからSave as Excelを選択すると保存ダイアログが表示されるので、拡張子.xlsx を含むファイル名を入力して保存すると Exce l 形式のファイルが作成されます。

今回は test.xlsx というファイル名で保存して、LibreOffice Calc でそのまま開いてみました。

f:id:infinity_volts:20200131165331p:plain

結果セット全体ではなく選択した範囲だけがファイルに保存されています。

念の為、WindowsMacExcel 2019 でも開いてみましたが、問題なく表示されました。

ちなみに WindowsSQL Server 2017 と一緒にインストールしてた SSMS ではこのような機能はありませんでした。

Linux 環境もなかなか便利ですね。

4. 補足

とても便利な VS Code with mssql なのですが、最後に注意が必要です。

データベース接続やクエリーを表示したまま、VS Code を終了すると、次回の VS Code の起動がとても遅くなります。

面倒でもデータベースを disconnect して、未保存のクエリーは保存するなり廃棄するなりして、何も編集されていない状態で終わらせた方が良いと思います。