Visual Studio Code 〜 vscode-mssql拡張を使ってSQL Database(Azure)に接続する

Visual Studio Code on MacとXamarin Studioにはまっている今日この頃・・・

Visual Studio Code拡張の vscode-mssql(Microsoft SQL Server support in VS Code) を使ってAzure SQL Databaseに接続&クエリー実行するという事を試してみました。

Azure SQL Databaseの準備

まず、Azure SQL Databaseを作成します。 Azure Portalにログインし、左のメニューから「SQL データベース」を選択します。

f:id:daigo-knowlbo:20161104235358p:plain

左上の「追加」ボタンをクリックします。

f:id:daigo-knowlbo:20161105000227p:plain

データベース名・サーバー名共に「daigoExampleDb」とします。リージョンはとりあえず西日本で。

f:id:daigo-knowlbo:20161105000635p:plain

価格レベルは「S0 Standard」としました。

f:id:daigo-knowlbo:20161105000648p:plain

以上で空っぽのAzure SQL Databaseが構築できました。

ファイアウォール設定を行う

Azure SQL Databaseは初期状態ではファイアウォール設定により1433ポートが閉じられています。
クライアントPCから1433ポートでAzure SQL Databaseに接続できるようにファイアウォールの設定を変更します。
Azure Portal上で、「SQLデータベース→daigoExampleDb→概要→サーバーファイアウォールの設定」を選択し、接続を許可するIPアドレスを登録します。現在のクライアントIPアドレスは画面上に表示されるので、そのIPを開始IP・終了IPに設定すればOKです。

f:id:daigo-knowlbo:20161105002713p:plain

Microsoft SQL Server support in VS Code(vscode-mssql)拡張をインストール

Visual Studio Codeに機能拡張をインストールします。
VS Codeを起動し、左側のアイコンから一番下の「拡張機能追加」をクリックし、検索ボックスに「vscode-mssql」と入力します。
vscode-mssqlが表示されるので「インストール」をクリックします。
インストールが完了したら「Reload」ボタンをクリックして拡張機能をアクティブ化します。

f:id:daigo-knowlbo:20161105001413p:plain

接続情報の設定

Visual Studio Codeに対してAzure SQL Databaseへの接続設定を行います。
メニュー「Code→基本設定→ユーザー設定」を選択します。

f:id:daigo-knowlbo:20161105003448p:plain

ユーザー設定画面が表示されます。

f:id:daigo-knowlbo:20161105003546p:plain

ソース編集領域の右側に表示されたsettings.jsonに接続情報を追記します。
接続情報は、基本的に自分で設定した内容であり、Azure Portalで「SQLデータベース→daigoExampleDb→概要→データベース接続文字列の表示」でも確認することが出来ます。

// 既定の設定を上書きするには、このファイル内に設定を挿入します
{
    "vscode-mssql.connections": [
        {
            "server": "daigoExampledb.database.windows.net",
            "database": "daigoExampledb",
            "user": "daigo",
            "password": "xxxxxxx",
            "options":
            {
                "encrypt": true,
                "appName": "vscode-mssql"
            }
        }
    ]
}

f:id:daigo-knowlbo:20161105003854p:plain

Azure SQL Databaseに接続する

コマンドパレットを表示し、以下のコマンドを実行します。

>MSSQL:Connect to a database

f:id:daigo-knowlbo:20161105004304p:plain

SQLを実行する

メニュー「ファイル→新規作成」を選択します。
右下の言語モードの選択「プレーンテキスト」をクリックし、「SQL」に変更します。

f:id:daigo-knowlbo:20161105004520p:plain ↓↓↓↓↓↓↓ f:id:daigo-knowlbo:20161105004905p:plain

以下のCREATE TABLE / INSERT / SELECT文をエディタに記述します。(サンプルとして実行するためにテーブル作成・レコード挿入・クエリーをひとまとめにしています)

CREATE TABLE [dbo].[company](
    [id] [int] NOT NULL,
    [name] [nchar](128) NULL,
    [capital] [int] NULL
) ON [PRIMARY]

CREATE TABLE [dbo].[employee](
    [id] [int] NOT NULL,
    [company_id] [int] NULL,
    [first_name] [nvarchar](32) NULL,
    [last_name] [nvarchar](32) NULL
) ON [PRIMARY]

insert into company (id, name, capital) values(1, 'Knowlbo', 1600);
insert into company (id, name, capital) values(2, 'ClearBox Technology', 1000);
insert into company (id, name, capital) values(3, 'HogeHoge Corp', 200);

insert into employee (id, company_id, first_name, last_name) values(1, 1, 'ryuichi', 'daigo');
insert into employee (id, company_id, first_name, last_name) values(2, 1, 'hogeko', 'ito');
insert into employee (id, company_id, first_name, last_name) values(3, 2, 'sora', 'daigo');
insert into employee (id, company_id, first_name, last_name) values(4, 2, 'torao', 'majima');
insert into employee (id, company_id, first_name, last_name) values(5, 3, 'hanako', 'sasazuka');

select * from [dbo].[company];
select * from [dbo].[employee];

f:id:daigo-knowlbo:20161105005414p:plain

コマンドパレットから以下のコマンドを実行します。

>MSSQL:Run T-SQL query

テーブル作成・レコード挿入が行われ、2つのSELECTクエリーの結果が表示されます。

f:id:daigo-knowlbo:20161105005512p:plain

f:id:daigo-knowlbo:20161105005531p:plain

Visual Studio Codeは多くの機能拡張が提供されており、マルチプロジェクトのソリューションも構成でき、またGITソース管理やタスクランナーもサポートされています。
無償の開発環境ですが、かなり活用のしがいがあるソフトウェアだと思っています。