Visual Studio 2019でのASP.NET Coreを使ったシステム開発の標準化を検討している。
開発工程では技術検証、新機能向けのテーブル定義の検討、単体試験等を目的として、開発者が自由に使用できるローカルのデータベースが望まれる。ここでは、Visual Studio 2019でASP.NET Coreを開発する際に自動的に組み込まれる”SQL Server Express LocalDB”の概要や簡単な操作例を説明する。
Visual Studio の開発用データベース
- Visual Studio 2019のインストール時に指定できるワークロードで「ASP.NET と Web 開発」を選択することで「SQL Server Express LocalDB エンジン」がインストールされるので、こちらを利用します。
- Visual Studio付属の[SQL Server オブジェクト エクスプローラー]ビューウインドウを使用することで、データベース接続が可能です。このウインドウを使って、テーブル作成、データ編集、クエリ実行等の基本的な操作を行えます。
- SQL Server Express LocalDB エンジンの概要は次の通りです。
- 「SQL Server Express LocalDB」はSQL Server Expressエディションの一部であり、アプリケーション開発者向けの軽量のSQL Serverデータベースです。開発者向けのものであり、リッチな構成・管理ツールは付属しませんが、インストールが簡単ですぐに使用できます。
- “SQL Server Express WebLog“によると、対して2つのニーズがあったそうです。これらを無理にSQL Server Expressに詰め込むより、ExpressとExpress LocalDBに分離する方式を採用したそうです。
- 無償版SQL Server: インストール、管理、プログラミングに関して他のエディションと100%互換があり、かつ無償である。勉強やトレーニング、本番環境の縮小版として使用したい。
- 開発用SQL Server: 本番でSQL Serverを使用する想定のアプリケーション開発で使用したい。(具体的な要件として、軽量・シンプルで管理を必要とせず、非管理者ユーザで実行できる、等)
- 「SQL Server Express LocalDB エンジン」はSQL Server Expressの一部であるため、SQL Server Expressのインストーラからもインストール可能です。
使用方法
データベースインスタンスへの接続
SQL Server オブジェクト エクスプローラーウインドを使って接続を確認します。
- Visual Studio 2019の[表示]-[SQL Server オブジェクト エクスプローラー]をクリックする。
- 表示されたウインドウで各種の操作が可能です。
データベースインスタンスとして、MSSQLLocalDBとProjectV13の2つがありますが、アプリケーション開発ではMSSQLLocalDBを使用します。
(ProjectV13は”SQL Server Data Tools(SSDT)“というDBツールで使用するインスタンスです。)
データベースの作成
“データベース”を右クリックして[新しいデータベースの追加]をクリックします。
クエリの実行例
“(localdb)\MSSQLLocalDB”インスタンスを右クリックし、[新しいクエリ]をクリックすることで、クエリ実行ウインドウを表示できます。
クエリ実行ウインドウでのデータベースやテーブルの作成例です。
(既定の宣言で作成したデータベース・テーブルではvarcharで日本語が文字化けしてしまいます。本来であればnchar, nvachar型を使用するべきかもしれませんが、ここでは”COLLATE Japanese_CI_AS”を指定してvarcharで日本語を使用できるようにしています。)
GUIの使用例
SQL Server Management StudioのようにGUIでデータベースオブジェクトを右クリックし、データベースの作成、テーブル定義の変更、データ編集ができます。
接続文字列の確認
SQL Server オブジェクト エクスプローラーウインドで、対象のデータベースのプロパティを表示して、接続文字列を確認できます。
なお、前述の例で作成したデータベースへの接続文字列は次のようになります。
Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=test;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
インスタンスの新規作成方法
次のようにLocalDB付属のSqlLocalDBコマンドを使用して、インスタンスを追加できます。
exeの場所は、私の環境の場合は”C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe”でした。
1 2 3 | SqlLocalDB.exe create Example -s LocalDB インスタンス Example はバージョン 13.1.4001.0 で作成されました。 LocalDB インスタンス Example が開始されました。 |
(Visual Studioで作成したインスタンスを参照する場合)
[SQL Server オブジェクト エクスプローラー]の[SQL Server]を右クリックし、[SQL Serverの追加]をクリックします。
表示された[接続]画面で、[ローカル]にある作成したインスタンスを選択します。
参考
LocalDBのインストール方法
Visual Studio 2019のインストール時に指定できるワークロードで、「ASP.NET と Web 開発」や「データの保存と処理 」を選択することで「SQL Server Express LocalDB エンジン」がインストールされます。
(インストールされていない場合、後からVisual Studio 2019のインストーラを起動し、「変更」にて選択できます。)
データベースファイルの保存場所
データベースのファイル群の既定の保存場所は次の場所になります。
C:\Users\(ユーザ名)\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB
参考リンク
- SQL Server Express LocalDB:
マイクロソフトの公式なSQL Server Express LocalDBの説明サイト。
概要、インストール方法、制限事項等。 - Editions and supported features of SQL Server 2019 (15.x):
SQL Server 2019の各エディションでサポートする機能。 - Introducing LocalDB, an improved SQL Express:
マイクロソフトのSQL Serverチームのブログ。
SQL Server Express LocalDBの概要や登場の背景等。このページリンクは変遷しているようで、リンクが切れる可能性があります。 - SqlLocalDB ユーティリティ:
LocalDBに関する情報や新規インスタンスの作成等の操作を行えます。