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 みたいにテーブルを開けます。
3. 結果セットを利用する
公式サイトではデータベースを作成する手順も載ってますが、私は表示するところまでで十分です。
ただ、公式サイトをよく読むと、RESULTS に表示されたグリッドの内容をJSON ファイルや Excel ファイルに保存できるようです。
私も実際にやってみました。
確かに選択肢があります。
必要な範囲を選択してからSave as Excel
を選択すると保存ダイアログが表示されるので、拡張子.xlsx を含むファイル名を入力して保存すると Exce l 形式のファイルが作成されます。
今回は test.xlsx というファイル名で保存して、LibreOffice Calc でそのまま開いてみました。
結果セット全体ではなく選択した範囲だけがファイルに保存されています。
念の為、Windows と Mac の Excel 2019 でも開いてみましたが、問題なく表示されました。
ちなみに Windows の SQL Server 2017 と一緒にインストールしてた SSMS ではこのような機能はありませんでした。
Linux 環境もなかなか便利ですね。
4. 補足
とても便利な VS Code with mssql なのですが、最後に注意が必要です。
データベース接続やクエリーを表示したまま、VS Code を終了すると、次回の VS Code の起動がとても遅くなります。
面倒でもデータベースを disconnect して、未保存のクエリーは保存するなり廃棄するなりして、何も編集されていない状態で終わらせた方が良いと思います。