SQL Server LocalDB へ接続する際の Data Source 文字列が分からずにハマる人はたぶん多いと思うし僕もけっこうな時間ハマったのでメモを残しておく。
LocalDB の存在確認
SQL Server ただ入れただけだと LocalDB が入っていないことがある。
Windows の「プログラムと機能」を開き、「localdb」でキーワード検索してみると良い。
まずこれが無いと話にならない。
無ければ LocalDB をインストールする
自分の場合はこれを使っている。
- Download Microsoft® SQL Server® 2014 Express from Official Microsoft Download Center
- LocalDB 64BIT\SqlLocalDB.msi (Microsoft SQL Server 2014 Express LocalDB)
有効な LocalDB のインスタンス名を確認
ここが一番大事。
コマンドラインで sqllocaldb info を実行するとわかる。
> sqllocaldb info MSSQLLocalDB ProjectsV13
この環境で有効なLocalDBのインスタンス名は「MSSQLLocalDB」と「ProjectsV13」であることがわかった。
- ※よく参考書などに書かれがちな「v11.0」というインスタンスは環境によっては存在しないことも多いので盲目的に「v11.0」を使ってはいけない。今回の環境にも「v11.0」は存在しない。しっかりと自分の環境にあるインスタンス名を把握し、それをもって接続を行うことが大事。
- ちなみに C:\Users\{ユーザ名}\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances あたりを見ると、同名のフォルダが見つかることかと思う。(これを見なければいけないことは普通は無いと思うが一応知識としてメモ)
SQL Server Data Tools for Visual Studio の存在確認
Visual Studio から SQL Server 関連に接続するために、SQL Server Data Tools for Visual Studio というものが必要っぽい。これの存在を確認する。
Windowsの「プログラムと機能」で「sql data」とでもキーワード検索すればそれらしきものが見つかる。
無ければ SQL Server Data Tools for Visual Studio をインストールする
自分の場合はこれを使っている。
ちなみに VS2013 では試していないが、VS2015 では [TOOLS] - [Extensions and Updates...] の [Updates] - [Product Updates] から VS2015 用の SSDTSetup.exe が入手できた。
Visual Studio に LocalDB インスタンス名を設定しておく
Visual Studio メニューの [TOOLS] - [Options] により Options ダイアログを開き、
[Database Tools] - [Data Connections] のページにある [SQL Server Instance Name] の設定値を確認する。
この値は "(LocalDB)\{LocalDBインスタンス名}" という構成になっているのだが、このインスタンス名部分が実際の環境のインスタンス名と一致していないとマズい。
今回の場合は「MSSQLLocalDB」と「ProjectsV13」が有効なインスタンス名であることが分かっている(上の手順で分かった情報)ので、これを "(LocalDB)\MSSQLLocalDB" に設定しなおす。
※ちなみに空文字列でも良いっぽい。(何かしらのデフォルト値が使われるようになる)
Visual Studio 内 Server Explorer から LocalDB 接続を行う
Visual Studio 内で Server Explorer を開き、
[Data Connections] の右クリックメニューの [Add Connections...] から Add Connections ダイアログを開き、
Add Connection ダイアログ内で、[Data source] を "Microsoft SQL Server Database File" に変更する。
![]() |
![]() |
LocalDB がアタッチするファイルパスを入力する。(ファイルは存在しなくてOK。あとの操作が成功するとファイルは自動生成される)
Advanced を押下し、Advanced Properties ダイアログを開き、[Data Source] が "(LocalDB)\{有効なLocalDBインスタンス名}" になっていることを確認。(もしくは "." でも良いみたい)
とりあえず内容確認できたので Add Connection ダイアログの OK を押せば接続が行われる。はず。
Data Connections 配下に新しい接続ができればOK。
Connection String の確認
追加された新しい接続の右クリックメニューの [Properties] により Properties ビューを表示すると、
この中で Connection String が確認できたりする。
この文字列はそのまま ASP.NET プロジェクトの Web.config の connectionString 等に設定できたりして便利。
今回の場合の Connection String は "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\_tmp\abc.mdf;Integrated Security=True;Connect Timeout=30" となった。
おしまい
自分の環境の LocalDB インスタンス名はちゃんと確認した上で設定を行うことが大事。
余談だがこのあたりの情報を日本語で検索してもなかなか見つからないことが多かったので、SQL Server 関連はあえて英語版を使っている。
(何か問題にハマったときにエラーメッセージを検索する人は多いと思うが、それが日本語だとなかなか正解にたどり着けなくても英語だとすぐたどり着けることがしばしばある)
ちなみに Advanced Properties ダイアログでは Connect Timeout という項目があり、これのデフォルトが 30 になっているので、DBにうまく繋がらないとエラー表示まで30秒程度待たされることがある。試行錯誤をしやすくするために自分はここは 1 にすることが多い。