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 データベース」を選択します。

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

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

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

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

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

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

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

ソース編集領域の右側に表示された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"
}
}
]
}

Azure SQL Databaseに接続する
コマンドパレットを表示し、以下のコマンドを実行します。
>MSSQL:Connect to a database

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

以下の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];

コマンドパレットから以下のコマンドを実行します。
>MSSQL:Run T-SQL query
テーブル作成・レコード挿入が行われ、2つのSELECTクエリーの結果が表示されます。


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