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ソース管理やタスクランナーもサポートされています。
無償の開発環境ですが、かなり活用のしがいがあるソフトウェアだと思っています。