2016 Express では、SQL Server Management Studio(SSMS)が独立したため、以下の3つのエディションになりました。LocalDB と Express 又は Express with Advanced Services とは共存してインストールでき、Express と Express with Advanced Services は共通のインストーラーになって、オプションの選択の違いだけなので、以前のようにエディションを意識する必要は殆ど無くなりました。
2016 Express では、Windows 7 及び Windows Server 2008 以降がサポートされます。
SSMS をインストールしたい場合は、SSMS のページからダウンロードしてインストールします。日本語版のSSMS のページもありますが、情報が古い場合が多いので英語版のページを見た方がいいです。
2016 Express SP1 では、Enterprise エディションでしか使えなかった、In-memory OLTP、In-memory ColumnStore、Operational Analytics、Always Encrypted 等の機能が使えるようになりました。また、2016 Express で以下の新機能が使えるようになっていたので、2008 R2 以降あまり変化がなかった Express 版ですが、やっと改善がなされたようです。
次期バージョンの注目は、SQL Server on Linux です。2017年の半ばに正式版が公開される予定で、SQL Server 2017 のページからプレビュー版がダウンロードできます。
以下は、Express エディションをインストールする場合のメモです。
1.Express のダウンロード
SQL Server 2016 Express の Webインストーラーは SQL Server ダウンロードのページからダウンロードできます。2016では、Express のダウンロードファイルが一本化されています。
バイナリーファイルからインストールしたい場合は、ダウンロードセンターのMicrosoft SQL Server 2016 Service Pack 1 Expressのページからダウンロードできます。こちらも、LocalDB、Express、Express with Advanced Services 共通になっています。
2. インストールの種類の選択
ダウンロードしたファイル(SQLServer2016-SSEI-Expr.exe)を起動すると、以下のようにインストールの種類の選択画面が表示されます。インストールの種類は以下の3種類です
基本をクリックすると、インストールの場所が指定できるだけで、一気に完了(下の図)まで進みます。SSMS やスクリプトを使えば「カスタム」と同じように後から設定は可能(リモート接続を参照)ですが、初心者の場合は「カスタム」で設定した方が楽です。しかし、慣れてくると「基本」でインストールして、スクリプトで設定してしまうというのも一つの手段だと思います。なお、下部にあるボタンは次のとおりで特に機能がある訳ではないです。
「カスタマイズ」ボタン: インストールセンターが立ち上がる。
「ツールのインストール」ボタン: SSMS のページへのリンク。
以下は、「カスタム」を選択した場合のインストールです。
3.インストールセンターの起動
「カスタム」を選択すると、ファイルのダウンロード後に以下の図のように「インストールセンター」が起動します。「新規インストールを実行するか、既存のインストールに機能を追加します。」を選択します。
4.ライセンス条項
ライセンス条項が表示されるので、「ライセンス条項に同意する」にチェックして「次へ」をクリックします。
10. 「次へ」をクリックすると、インストールが始まります。
11.インストールの完了
インストールが完了すると以下のような画面が表示されます。この時点で、SQL Server のデータベースは動作しており、ローカルで使うだけであればこれでインストールは終了です。以下はリモート接続が必要な場合の設定で、SQL Server 構成マネージャを使ってTCP/IP接続を有効にする必要があります。
15. ホスト名・接続文字列
SQL Server Management Studio で接続する時のサーバー名は、接続方法によって異なってきます。ローカルでメモリー接続をする場合は、「既定のインスタンス」の場合は、(local) 又は . になります。また、「名前付きインスタンス」の場合は、(local)\インスタンス名 又は .\インスタンス名となります。例えば、インスタンス名がデフォルトのインスタンス名である SQLExpress の場合 (local)\SQLExpress 又は .\SQLExpress です。
接続文字列は以下のようになります。
.NET の場合
<connectionStrings> <add name="{接続文字列名}" connectionString="Data Source=(local)\SQLEXPRESS;Initial Catalog={データベース名};Integrated Security=True;"providerName="System.Data.SqlClient" /> </connectionStrings>.NET Core の場合
"ConnectionStrings": { "DefaultConnection": "Server=(local)\\SQLEXPRESS;Database={データベース名};Trusted_Connection=True;MultipleActiveResultSets=true" }固定ポートの場合は、サーバー名,ポート番号 で、インスタンス名は不要です。また、既定のポート番号 1433 の場合は、ポート番号を省略できます。インスタンス名 SQLExpress でインストールした場合でも、ポート番号1433の場合は、192.168.0.3 のように IPアドレスだけで接続できます。ポート番号を14330 でインストールした場合は、 192.168.0.3,14330 というようにします。接続文字列は以下のようになります。
<connectionStrings> <add name="{接続文字列名}" connectionString="Data Source=192.168.0.3,1433;Initial Catalog={データベース名};Integrated Security=True;"providerName="System.Data.SqlClient" /> </connectionStrings>.NET Core の場合
"ConnectionStrings": { "DefaultConnection": "Server=192.168.0.3,1433;Database={データベース名};Trusted_Connection=True;MultipleActiveResultSets=true" }動的ポートの場合は、インスタンス名でサーバーがポート番号を識別するので、サーバー名\インスタンス名となります。例えば、192.168.0.3\SQLExpress のようにします。接続文字列は以下のようになります。
<connectionStrings> <add name="{接続文字列名}" connectionString="Data Source=192.168.0.3\SQLEXPRESS;Initial Catalog={データベース名};Integrated Security=True;"providerName="System.Data.SqlClient" /> </connectionStrings>.NET Core の場合
"ConnectionStrings": { "DefaultConnection": "Server=192.168.0.3\\SQLEXPRESS;Database={データベース名};Trusted_Connection=True;MultipleActiveResultSets=true" }
16.接続テスト
クライアントのSSMSを使って接続のテストをします。もし、接続がタイムアウトする場合は、以下の図のようにサーバーのコマンドプロンプトを立ち上げて、netstat -a を実行すれば、ある程度原因がわかります。プロトコルがTCP ローカルアドレス 0.0.0.0:1433 状態 LISTENING の接続が表示されるのであれば、SQL Server 2012 Express のTCP/IP は有効になっていますが、表示されない場合は、TCP/IP が有効になっていないということがわかります。
また、SQLCMD を利用して接続テストができます。下の図のように TCP/IP 接続が有効になっている場合は、以下のコマンドで SQL Server Express に接続することができます。
sqlcmd -S アドレス -U sa -P パスワード
接続は一旦はできるけど拒否される場合は、ログを確認してください。ログは、SSMS をインストールしている場合は、下の図のようにオブジェクト エクスプローラーの一番下にあるので簡単に確認できます。SSMSE をインストールしていない場合には、接続できるまでは、SSMS を使って確認できないので、直接 Log ファイルを確認します。Log ファイルは、SQL Server の Log フォルダーにあり、テキストエディタで開くことができます。既定のインストールでは、「既定のインスタンス」を選択した場合は、C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Log、「名前付きのインスタンス」を選択した場合は、C:\Program Files\Microsoft SQL Server\MSSQL13.SQLEXPRESS\MSSQL\Log のフォルダーになります。
17.データベース、ログインアカウントの作成
SQL Server Management Studio (SSMS) を使用して、データベース及びログインアカウントを作成する手順は、SQL Server 2008 Express の設定にメモをしています。2008 のものですが、現時点でも殆ど変更はないのでそのままにしています。