a2 Tech blog

試したこと・調べたこと・感じたことを発信するITエンジニアの日記です。仕事とは直接関係ないけど興味あることを模索していきます。

Visual Studio Code for SQL Server on Linux

f:id:ninna2:20170503203013j:plain:w360

SQL Server on LinuxをAzure Virtual Machine上に構築しました。ただ、構築しただけなのでデータベースとかテーブルとかまだ作成していません。SQL Server On Linuxを操作していく上で、もちろん、SQL Server Management Studioという選択肢がはじめにあります。ただ、せっかくSQL Server On Linuxなので、何となく新しいことやりたいなぁと思いまして、やっぱりここはマルチプラットフォームをフル活用だって勝手に思い込んでみます。

というわけで、今回はVisual Studio Codeから、SQL Server on Linuxに接続するために準備をしていきたいと思います。

MicrosoftのDocsにも記載されているので参考にしています。

docs.microsoft.com

ちなみに、SQL Server on LinuxをAzure Virtual Machine上に構築してみた記事は下記です。ついでに読んでみて下さい。

ninna2.hatenablog.com

それでは、始めていきましょう。

Visual Studio Codeって…

まず、Visual Studio Codeについて簡単に触れてきます。Visual Studioという名前がついていますが、高機能IDEではなく、Microsoftが提供しているテキストエディタです。最近、Visual Studio Code(VSCode)がかなり地位を上げてきているように感じます。一時期はAtomが強かったようですが、VSCodeもかなりExtensionが整ってきて自分好みのエディタにカスタマイズができるようになってきたからでしょうか。私的には、Atomよりなんといっても軽いのがVSCodeの良いところかと思います。

ダウンロードは、Microsoftのページからできます。無料です。マルチプラットフォームです。素敵です。

code.visualstudio.com

他のエディタとの比較は、さまざまな人がしてくれています。私は下記を参考にしました。皆様もこれを機にVSCode入れてみてはどうでしょうか?

www.codementor.io

私の端末は、Windows7 ですのでその前提で書いていきます。MacとかLinuxの方は適時読み替えながら読んでください。

mssql extension のインストール

mssqlというすごく素直な名前のVSCodeのExtensionがMicrosoftから公式に提供されています。それをインストールして使っていきます。サイドバーの"Extentions"からフィルターに"mssql"と入力して探します。

f:id:ninna2:20170503205403j:plain

余談ですが、Proxy経由しないといけない環境だとExtensionの検索がうまくできないので、settings.jsonにProxy設定を入れてください。こんな感じです。

{
    "http.proxy": "http://<proxyServerName>:port",
    "http.proxyStrictSSL": false,
    "http.proxyAuthorization": null
}

インストールが完了するとReloadする必要があるのでReloadします。これでインストール作業は完了です。簡単ですね。

あと、Windows10ではない場合には、別途Windows 10 Universal C Runtime”が必要なのでインストールして置きます。

For Windows 8.1, Windows Server 2012 or lower versions, you must download and install the Windows 10 Universal C Runtime. Download and open the zip file. Then run the installer (.msu file) targeting your current OS configuration.

vscode-mssqlGithubWikiに記載されているので、これに従ってインストールします。WindowsUCRT.zipをダウンロードして解凍して環境にあった.msuをたたくだけですね。わたしの環境だと、X86-based Windows 7 SP1なので、Windows6.1-KB2999226-x86.msuです。すでにKB2999226のWindowsUpdateが当たっているので実際にはインストール済みでした。

github.com

WindwosUpdateを行っていない人は、インスールしておいてください。

SQL Server on Linuxにつなぐ

VSCodeで、新規ファイルを作成します。拡張子を".sql"にします。SQL Serverに接続するためには、Command Palette(Ctrl+Shift+P or F1)を開き、"MS SQL"と打ってみてください。いろいろ候補が出るので、その中から、“MS SQL: Connect”を選択します。

f:id:ninna2:20170503230424j:plain

過去に接続した際の接続情報(Profile)があれば出ますが、今回は初回なので、"Create Connection Profile"を選択します。

f:id:ninna2:20170503230631j:plain

SQL ServerホスティングされているServer名またはIPアドレスを入力します。

f:id:ninna2:20170503230717j:plain

接続するデータベースがあるのであれば、指定します。今回はデータベースを指定せずに接続します。

f:id:ninna2:20170503230726j:plain

認証方式を選択する必要があるので選びます。SQL Server on Linuxは、SQL Server認証ですので、"SQL Login"を選びます。

f:id:ninna2:20170503230733j:plain

SQL Server認証でのユーザ名を入力します。saユーザしか存在していないのでsaで接続しました。

f:id:ninna2:20170503230742j:plain

パスワードを入力します。

f:id:ninna2:20170503230759j:plain

パスワードを記憶するかどうか聞かれるので、お好みで選択してください。私はYesで選択しました。

f:id:ninna2:20170503230810j:plain

最後に、Profileに名前を付けるかどうか聞かれるので、お好みでどうぞ。指定しなくても良いです。Server名で勝手に命名されます。。

f:id:ninna2:20170503230819j:plain

これで入力情報が正しければつながるはずです。VSCodeの右下のバーに、接続状態が表示されます。

f:id:ninna2:20170503232210j:plain

データベースを作成

操作をやってみましょう。

接続は既にできていると思いますので、T-SQLを書いていきます。snippetsがしっかり働くのでひな型を簡単に生成してくれます。ファイルに、"sql"と入力するとずらっとコマンドが出てきます。その中に、CreateDatabaseというのがあるので、それを選択するとひな型が勝手に展開されます。便利。

f:id:ninna2:20170503232848j:plain

これのDatabaseNameを自分の好きなものに修正して実行すれば完成です。SQLの実行は、右クリックで"Execute Query"としてあげれば実行されます。(Ctrl+Shift+Eの方が簡単だしそっちの方がお勧めです。)

実行するとこのような感じになります。

f:id:ninna2:20170503235133j:plain

Selectの結果は、表形式で見れるようです。また、CSVとかJSON形式とかで保存ができるようですね。VSCode恐るべし。

テーブルの作成

データベースができたので、テーブル作成していきます。新しくSQLを書いていきたいので、Command Palette(F1で開く)から“MS SQL: New Query”を実行します。そうすると接続先を聞かれますので選択するとファイルが開きます。次にデータベースを変更します。Command Palette(F1で開く)から、“MS SQL: Use Database”を選択します。そうすと先ほど作成したTestDBというのが出てくるので、それを選びます。接続するデータベースを変更できました。

f:id:ninna2:20170503235927j:plain

CreateTableもひな型があるので利用していきます。“sqlCreateTable”です。

f:id:ninna2:20170504001054j:plain

テーブル名のところだけ好きなものに書き換えて実行してみました。本当ならカラム定義とかもちゃんと変えたいのですがお試しなのでそのままにしてます。こんな感じです。

f:id:ninna2:20170504001755j:plain

本当は、データ入れて検索ってやりたいですが、同じようなことの繰り返しになってくるので、割愛しますね。

Visual Studio CodeはSQL Clientとしてつかえるぞ

Visual Studio CodeにmssqlというExtensionsをインストールして、SQL Serverに接続してみました。文章にすると長々とになりましたが、実際にやってみるとさくっと動かすところまでできるようになります。SQL Server Manegement Studioは良いツールですし、さまざまな操作が直感的に行えるツールではあると思います。一方で、今回試してみたVisual Studio Codeでは、T-SQLベースでガリガリ書いていくのにはかなり向いているのではないかと思いました。かなり強力なsnippetsが備わっていますし、入力補完も素晴らしい。あとなんといってもエディタなのですごく軽量です。マルチプラットフォームでもあるので、どこでもSQLが書けるわけです。

私もこれでSQL Server on Linuxをガリガリ触っていけるクライアント環境ができました。

Visual Studio Code × SQL Server この組み合わせ素敵ですよ。みなさん試してみてください。