Visual StudioサーバーエクスプローラーでLocalDBに接続する方法


240

1時間検索しても、これに対する有効な解決策が見つからなかったとは思えません。Entity Framework 6.0に関するこの記事をフォローしています。コードファーストの簡単なウォークスルーを提供します。プロジェクトを作成し、プロジェクトをコンパイルするための最新のEF Nugetパッケージをインストールしました。また、Visual Studio 2013に付属のMicrosoft SQL Server 2012 Express LocalDBがインストールされていることも確認しました。ローカルコンピューターにSQLの他のインスタンスがインストールされていません。プログラムが実行され、エントリがデータベースに追加され、コンソールに出力されます。しかし、記事で「localdbを確認してください」と書かれている場合、その方法はわかりません。プロジェクトフォルダーの下に作成された「.mdf」または「.ldf」ファイルが表示されません。私はVisual Studioを接続するためにあらゆる方法を試しました ■サーバーエクスプローラからLocalDB。ウィザードが見つかりません(localdb)または(localdb)\v11.0;Integrated Security=true;、StackOverflowのいくつかの場所で質問されたように接続文字列を受け入れるプロバイダーをサーバーエクスプローラーで見つけることができませんが、回答が機能しないか、回答としてマークされています。助けてください、これはこのイライラする必要はありません!

Visual Studio Server ExplorerをLocalDBに接続する手順は何ですか?


70
私はこのビジネスに参入したばかりの人をしばしば哀れに思う。20年前、ツールは実際にははるかに使いやすくなりました。ドキュメントも今ややや十分であり、ほとんどの場合、それ以下です。MSDNに、「foo」->「これはfooメソッドです」などのメソッドを単に説明する「ドキュメント」が表示されます。本当に、マイクロソフト?テクニカルライターはどうなりましたか?Books Online(実際)はどうなりましたか?
ピッツバーグDBA

1
管理者としてVisual Studioを実行していることを確認してください。
ダレングリフィス

4
あなたは、Visual Studioの使用で大丈夫だ場合は、SQL Serverのオブジェクトエクスプローラの代わりに、サーバーエクスプローラを。それはより簡単なソリューションです(手作業による構成は少なくなります)。私の答えを確認してください:stackoverflow.com/a/41906391/3645638
Svek

私のセットアップでは、localdbではなくsqlserverexpressにデータベースを作成します。何が原因ですか?
Jason Cheng

回答:


282

Visual Studio 2012のすべての私は、入力されたしなければなりませんでした。

(localdb)\v11.0

Visual Studio 2015およびVisual Studio 2017は次のように変更されました。

(localdb)\MSSQLLocalDB

Microsoft SQL Server Dataソースを追加する際のサーバー名として:

View/Server Explorer/(Right click) Data Connections/Add Connection

その後、データベース名が入力されました。承認された回答で他のすべての手順を実行する必要はありませんでしたが、サーバー名のコンボボックスでサーバー名が自動的に使用できるようになっていると便利です。

以下を使用して、マシンで使用可能なLocalDBデータベース名を参照することもできます。

View/SQL Server Object Explorer.

4
うん、これは初めて動作するはずです。しかし、そうでない場合は、受け入れられた回答の手順でサービスを開始し、機能させる必要があります。
14年

Entity Frameworkが使用していたサーバー名を見つけるためにSQL Serverオブジェクトエクスプローラーを使用したため、SQL Serverオブジェクトエクスプローラーがそれを開始したのかもしれません。私はこの質問を見つけましたが、私は単純に何かを期待していたと私は:)パイプ名を使用するように思っていたとして、完全にそれを読んでいなかったとして答えをしようとオフの一種怖がってあったていた
RationalDevはGoFundMonica好き

詳細を知らないだけなのか、これを設定するのが直感的でないのは非常にイライラしているのか?2012年でも2015年でも、IDE全体でこのようなものをほとんど隠しているようです。
Rex_C 2016年

ありがとうございました。私はあなたの答えが見つかるまで頭を悩ませていました。
Alexandre N.

5
なぜマイクロソフトなのか?なぜ名前を変更してドキュメントを更新しないのですか?(VS 2015パスをありがとう)
Thibault D.

256

はい、私自身の質問に答えます。

LocalDBをVisual Studio Server Explorerに接続する手順

  1. コマンドプロンプトを開く
  2. 走る SqlLocalDB.exe start v11.0
  3. 走る SqlLocalDB.exe info v11.0
  4. np:\ ...で始まるインスタンスパイプ名をコピーします。
  5. Visual Studioで、[ツール]> [データベースに接続...]を選択します。
  6. [サーバー名]にと入力し(localdb)\v11.0ます。うまくいかなかった場合は、先ほどコピーしたインスタンスパイプ名を使用してください。これを使用してSQL Management Studioに接続することもできます。
  7. 次のドロップダウンリストでデータベースを選択します
  8. OKをクリックします

ここに画像の説明を入力してください


86
最近のMSプラットフォームでのほとんどすべてのアクションには、いくつかの魔法または以前に記憶された知識が含まれます。まったく新しい魔法のセットが導入された5年後に、これらのことを誰がサポートするのでしょうか。
tbone 14

34
ありがとうございました!この優れた答え(および優れた質問)に追加すると、 SqlLocalDb infoすべてのサーバー名が一覧表示されます。私の場合、EFコードファーストの魔法の後、データベースがMSSQLLocalDBnot v11.0になってしまったため、(localdb)\MSSQLLocalDB[接続の追加]ダイアログボックスに入力しました。
biscuit314 2014年

1
SqlLocalDb.exeがシステムパスに2回表示されます-最初はC:\ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn、次にC:\ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binnにあります。したがって、以前のバージョンのみが呼び出されます!VS2012とVS 2013の両方をインストールしています。
John Pankowicz、2015

2
私はますます多くの人々がマイクロソフトのものから他のプログラミング言語に引き寄せられていると信じています。この単純な構成とファイルの場所は、他の言語に欠けているものよりも難しくなっています。まったく欠けている場合。
JustJohn 2015

4
私はこれについて午後ずっと頭を悩ませてきました。かつてはとても流血でしたが、なぜそんなに複雑にしなければならないのですか?助けてくれてありがとう。
ジョージウィリアムズ

71

で選択:

  1. 情報源: Microsoft SQL Server (SqlClient)
  2. サーバー名: (localdb)\MSSQLLocalDB
  3. サーバーにログオンします。 Use Windows Authentication

データベース名を取得するには、更新ボタンを押してください:)

スクリーンショット


1
どういうわけかそれは28/04/2015の唯一の実用的な答えでした
maazza

4
ここvs2015 ..これが答えでした。.彼らはlocalDbに名前を変更したと思いますか?
punkouter

1
これは、Win 8.1のVS2015 RCで実行されました。
ScottG、2015年

:サーバー名についてstackoverflow.com/questions/27197359/...
kr85

vs2017でも機能します。
Toke Breer-Mortensen、

25

代わりにSQL Server Object Explorer(SSOX)を使用してください

他の回答とは異なり、このアプローチでは以下を使用し
ます。-特別なコマンドはありません。
-複雑な構成はありません。SQL Serverオブジェクトエクスプローラーを
使用するだけ

それはかなり簡単です...

  • [表示 ]メニューから、SQL Serverオブジェクトエクスプローラーを開きます

1

  • {YourTableName}テーブルを右クリック> ビューデザイナー

二

できました。


16

それは私のために働いた。

  1. コマンドプロンプトを開く
  2. 「SqlLocalDB.exe start」を実行します
  3. システム応答 "LocalDBインスタンス" mssqllocaldb "が開始されました。"
  4. VSでは、ビュー/サーバーエクスプローラー/(右クリック)データ接続/接続の追加
    • データソース:Microsoft SQL Server(SqlClient)
    • サーバー名:(localdb)\ MSSQLLocalDB
    • サーバーにログオンします。Windows認証を使用します。
  5. [テスト接続]を押して、[OK]をクリックします。

8

以下は、SQLServer Express 2016を使用するWindows 10上のVisual Studio 2017 Community Editionで動作します。

PowerShellを開き、それが何を使用SqlLocalDB.exe infoしているか、およびそれがで実行されてSqlLocalDB.exe info NAMEいるかどうかを確認します。私のマシンでは次のようになります。

> SqlLocalDB.exe info
MSSQLLocalDB
> SqlLocalDB.exe info MSSQLLocalDB
Name:               mssqllocaldb
Version:            13.0.1601.5
Shared name:
Owner:              DESKTOP-I4H3E09\simon
Auto-create:        Yes
State:              Running
Last start time:    4/12/2017 8:24:36 AM
Instance pipe name: np:\\.\pipe\LOCALDB#EFC58609\tsql\query
>

実行されていない場合は、で起動する必要がありますSqlLocalDB.exe start MSSQLLocalDB。実行中は、Instance pipe name:で始まるものが表示されnp:\\ます。その名前付きパイプ文字列をコピーします。VS2017内でビューを開き、Server Explorerタイプの新しい接続を作成しMicrosoft SQL Server (SqlClient)(完全なファット接続タイプが必要な他のファイルタイプに惑わされないでください)、Server name:PowerShellからコピーしたインスタンスパイプ名をに設定します。

また、Connect to databaseを使用してセットアップされたDotnet Core / Entity Framework Coreプロジェクトで機能していた接続文字列と同じデータベースを設定しましたdotnet ef database update

ログインしてsqlcmd、名前付きパイプ文字列を使用してデータベースを作成できます。

sqlcmd -S np:\\.\pipe\LOCALDB#EFC58609\tsql\query 1> create database EFGetStarted.ConsoleApp.NewDb; 2> GO

https://docs.microsoft.com/en-us/sql/tools/sqllocaldb-utilityに、アプリケーションのユーザーを作成する方法の説明があります


7

Visual Studio 2015 RCには、LocalDb 12がインストールされています。以前と同様の手順ですが、「マジック」を知る必要はありません。これを使用する前に、デフォルトのインスタンスがオンになっている必要があります... Rant完了、解決策なし:

cmd> sqllocaldb start

どちらが表示されます

LocalDB instance "MSSQLLocalDB" started.

あなたのインスタンス名は異なる場合があります。どちらの方法でも、VSにポップオーバーしてサーバーエクスプローラーを開き、[データ接続]を右クリックして[追加]を選択し、SQL Serverを選択します。サーバー名のタイプは次のとおりです。

(localdb)\MSSQLLocalDB

DB名を入力せずに、[テスト接続]をクリックします。


6

修正が機能しません。

例の図とまったく同じように、これらの手順はすべて「システム」データベースへのアクセスのみを提供し、アクセスする既存のユーザーデータベースを選択するオプションはありません。

ローカルの(Express Editionではない)Microsoft SQL Serverインスタンスにアクセスするためのソリューションは、SQL Server側にあります。

  1. 実行ダイアログを開く(WinKey + R)
  2. タイプ: "services.msc"
  3. SQL Server Browserを選択します
  4. プロパティをクリックします
  5. 「無効」を「手動」または「自動」に変更します
  6. 「サービス開始」ボタンが有効になったら、それをクリックします。

できた!これで、接続プロパティの[サーバー名]リストからローカルSQLサーバーを選択できます。


7
このStackOverflow Q / AはLocalDBに関するものです。あなたの答えは、SQLの他のインスタンスを有効にすることだと思います。
orad 2014

私は、ローカル環境にこの修正プログラムを試してみましたが、それが元の質問のために期待されるようFIXあなたがかもしれないものではなく、掲載んだと思うことはありません。Enterprise Edition = Enterprise環境であると想定しないでください。私たちの一部は、ワークグループマシンでのローカル開発にそのエディションを使用しています。
alejandrob 2014年

ブラウザーを使用するのではなく(localdb)と入力する必要があったにもかかわらず、これで実際に修正されたので、質問にうまく答えることができます。
PeterJ

4

CMDを管理者として実行します。

  1. スタートメニュー 'cmd'から-見つかるまで待ちます。
  2. cmdを右クリックして、管理者として開くを選択します。
  3. タイプ:cd C:\ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn
  4. タイプ:SqlLocalDB start
  5. 今タイプ:SqlLocalDB情報
  6. 使用可能な実行中のSQLインスタンスを表示します...必要なものを選択してください...
  7. インスタンスタイプの詳細を確認するには:SqlLocalDB info instanceName

  8. これでVSから接続を設定できます。VSでは、ビュー/サーバーエクスプローラー/(右クリック)データ接続/接続の追加データソース:Microsoft SQL Server(SqlClient)サーバー名:(localdb)\ MSSQLLocalDBサーバーにログオン:Windowsを使用認証「テスト接続」を押して、OKをクリックします。

  9. 仕事完了


3

Visual Studio 2017で最速の方法は、[ツール]-> [SQL Server]-> [新しいクエリ]に移動することです。ローカルデータベースから選択し、下部にある目的のデータベース名を選択します。

別の方法

Visual Studio 2017サーバー名は次のとおりです。

(localdb)\MSSQLLocalDB

メニューツール->データベースに接続...を使用して新しい接続を追加します。


SQLExpressをデフォルトのインスタンスにインストールしなかった場合は、「...(localdb)」も試してみてください
Jason Geiger

1

上記の手順に従いましたが、Visual Studio 2015の構成の前にSQL Server 2014 LocalDBをインストールするのを忘れました。

私の手順は次のとおりです:

  1. SQL Server 2014 LocalDBをインストールします。
  2. Visual Studio 2015を開き、次にSQL Serverオブジェクトエクスプローラーを開きます
  3. SQL Serverタグの下でLocalDBを見つけます。

これが誰かを助けることを願っています。


0

シナリオ:Windows 8.1、VS2013 Ultimate、SQL Expressがインストールおよび実行されており、SQL Server Browserが無効。これは私のために働きました:

  1. まず、サービスでSQL Server Browserを有効にしました。
  2. Visual Studioの場合:パッケージマネージャーコンソールを開き、次のように入力します。Enable-Migrations ; 次に 、VSにMigrationsフォルダーを作成したEnable-Migrations -ContextTypeName YourContextDbName入力します。
  3. Migrationsフォルダー内に「Configuration.cs」ファイルがあり、次の方法で自動移行をオンにします。AutomaticMigrationsEnabled= true;
  4. アプリケーションを再度実行すると、環境によってDefaultConnectionが作成され、コンテキストから新しいテーブルが表示されます。この新しい接続はlocaldbを指します。作成された接続文字列は次を示します:Data Source =(LocalDb)\ v11.0 ...(追加のパラメーターと作成されたmdfファイルへのパス)

これで、サーバー名を使用して新しい接続を作成できます:(LocalDb)\ v11.0(ヒットリフレッシュ)データベースに接続:ドロップダウンから新しいデータベースを選択します。

お役に立てば幸いです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.