トップ回答者
SQL Server Management StudioのSQLEXPRESSをダブルクリックすると、エラーになる。

質問
-
お世話になります。
Visual Studio 2017をインストール、SQL Server Expressをダウンロードしています。
Visual Studioからデータベースに接続しようとしましたが、エラーになりましたので、
SQL Server Management Studioを開いて見ました。
SQL Server Management Studioは、次のような表示となり、SQLEXPRESSをダブルクリックすると、エラーになりました。
Visual Studio 2017では、Sampleを使っていますが、データベース接続の際に、同様のエラーメッセージがIISで表示されます。
SQL Serverのスタートで躓いて困惑しています。
ご指導宜しくお願い致します。
takatsu
回答
-
質問者さんがアップされた画像を見ると(どれのことを言っているのか分からないと思いますので、以下にアップし直しておきます・・・見やすくなるようにトリミングしました)、
SQL Server Express の 2 つの名前付きインスタンスが、それぞれ SQLEXPRESS と MAGOME7_EXPRESS という名前でインストールされているように見えます。
> ローカルサーバーグループの****-s¥Sqlexpressのプロパティで接続テストを行いますと正常にテストできました。
とのことですが、それは前者の SQLEXPRESS という名前の SQL Server Express の名前付きインスタンスに接続されているようです。
> 次に、ローカルサーバーグループの****-sのプロパティで接続テストを行いますと、エラーが返ってきました。次のように、接続できないようです。
「****-s」というのはコンピューター名だと理解していますが、コンピューター名だけで接続できるのは既定のインスタンスに限られます。
なので、「****-sのプロパティで接続テスト」というのは、先にアンインストールした既定のインスタンスに接続に行っています。でも、既定のインスタンスはアンンストールしたので存在せず、接続に失敗しているということだと思います。
アップされた画像を見る限り、SQL Server Express の SQLEXPRESS という名前の名前付きインスタンスの方には接続できています。なので、このスレッドの目的は果たせていると思います。
もう一つの、MAGOME7_EXPRESS という名前の名前付きインスタンスは、いろいろいじっているうちに意図せずできてしまったものだと思いますが、とりあえずそれはそのままほっておいてもいいのでは?
なお、私の一番最初のレスで、[サーバーへの接続]ダイアログの画像を示して、
> 開発マシンのローカルの SQL Server Express に Windows 認証で接続するならサーバー名 (local)\sqlexpress で接続できると思いますが。
と書きましたが、ローカルの SQL Server に接続するなら、コンピューター名を使うのではなく (local) とするのがよさそうです。MSDN ライブラリでは (local) を使うようにと書いてあります。
MAGOME7_EXPRESS という名前の名前付きインスタンスにも (local)\MAGOME7_EXPRESS で接続できると思われます。お試しください。
- 編集済み SurferOnWww 2018年4月28日 8:39 訂正
- 回答としてマーク old_aged_bowler 2018年4月28日 11:23
すべての返信
-
お世話になります。
SQL Server 関連のプログラムをすべて、アンインストールし、SQLEXPRESS2017をダウンロードしました。その結果をコンピューターの管理では、SQLEXPRESSはインストールされませんでした。、
プログラムとして、SQL Server 2017とSQL Server TOOLS 17がインストールされました。
構成マネージャでも、SQLEXORESSのインストールは行われていないようです。
2017のEXPRESSを選択したのですが、どこにも見当たりません。
マネージメントstudioで確認すると、SQLEXPRESSの名称がありますが、エラーとなります。
SQLSERVERは、接続されますが、
EXPRESSは、エラーになります。
EXPRESSは、インストールされていないのでしょうか?
それとも、もっと古いバージョンをインストールした方が宜しいでしょうか?
宜しくお願い致します。
takatsu
-
どこから何を入手してどのようにインストールしたのか不明ですので(そういう情報は詳しく書いてくださいね)、想像ですが、
(1) EXPRESS 版でない SQL Server を入手してインストールした。
(2) 入手したのは EXPRESS 版だが、既定のインスタンスとしてインストールした。(デフォルトでインストールすると SQLEXPRESS という名前の名前付きインスタンスになります)
・・・ということではないのでしょうか?
ユーザーインスタンスを使うとか、Entity Framework Code First で DB を作るというようなことがなければ、今の状態でも使えそうな気がします。
どうしても EXPRESS 版でないとダメという理由(上のような理由)があるのですか?
- 編集済み SurferOnWww 2018年4月25日 8:16 訂正
-
構成マネージャの「SQL Serverサービス」でインストール済みSQL Serverを右クリックして、プロパティを開き、詳細設定のSKUにエディションが表示されるので、エディションを確認してみたらいかがでしょうか?
エディションがExperssなら、単に既定のインスタンスとしてExpressをインストールしたというだけですので、Expresをインストールするという目的は達成できていることになります。
もし、それ以外のエディションであれば、アンインストールして改めてExpressをダウンロードしてインストールしなおす必要があるということになるかと思います。
Evaluationだった場合は、無償ではありますが、ライセンス上の制限があるので注意が必要です。
- 編集済み MKIII 2018年4月26日 6:46
-
お世話になっております。
---どこから何を入手してどのようにインストールしたのか不明ですので(そういう情報は詳しく書いてくだ さいね)
事情を何も書かずに、質問してしまい、大変失礼致しました。
https://www.microsoft.com/ja-jp/sql-server/sql-server-downloads
からダウンロードしました。
ーーー(1) EXPRESS 版でない SQL Server を入手してインストールした。
(2) 入手したのは EXPRESS 版だが、既定のインスタンスとしてインストールした。(デフォルトでインストールすると SQLEXPRESS という名前の名前付きインスタンスになります)
・・・ということではないのでしょうか?
その通りだったようです。
ーーーアンインストールして改めてExpressをダウンロードしてインストールしなおす必要があるということになるかと思います。
アンインストールして、再度同ページから、インストールしました。今回は、エディションに気を付けてインストールしました。
結果、ローカルサーバーグループにSQLEXPRESSができました。これは正常のようです。
SQLSERVERの方は、エラーとなります。これはSQLSERVERをインストールすれば、エラーがなくなると思っています。
SSCMとコンピューターの管理は、以下の通りです。
遅ればせながら、この度お世話になっているのは、次のような経緯からでした。
Visual Studio 2017をインストールし、20年ほど前に、ACCESSデータベースとASPで作成したプログラムを、ASP.NETで作り変えようとしています。
Visual Studio 2017をインストールしたら、ACCESSの容量を考えて、SQLデータベースに変えて作成を始めました。Visual Studio 2017とIISの動作は稼働しているのですが、SQLデータベースとの接続では、エラーになります。
現在でも、Visual StudioからSQLデータベースに接続出来ていません。
今度は、Visual StudioからSQLデータベースに接続に苦慮しています。
sanpleを利用して確認していますが、デバックで、エラーになります。
多分、Visual Studioから、SQLへのリンク設定が原因だと思いますが、こちらの方のご指導もお願いできるでしょうか。
出来ましたら、ご指導いただきたいのですが、如何でしょうか。
宜しくお願い致します。
takatsu
- 編集済み old_aged_bowler 2018年4月26日 14:29
-
結局問題は解決して SQL Server 2017 Express に SSMS から接続できるようになったということでいいのですか?
あなたのレスには、
> 結果、ローカルサーバーグループにSQLEXPRESSができました。これは正常のようです。
と書いてあると思ったら、
> SQLSERVERの方は、エラーとなります。これはSQLSERVERをインストールすれば、エラーがなくなると思っています。
と矛盾するようなことも書いてあるのですが・・・
> 多分、Visual Studioから、SQLへのリンク設定が原因だと思いますが、こちらの方のご指導もお願いできるでしょうか。SQL Server 2017 Express に SSMS から接続できるようになって、次の課題として Visual Studio からの接続をしたいということであれば、新たに別のスレッドを立てて質問してください。
その際はこのスレッドはクローズしていただくようお願いします。
#次回は、回答者からのレスにはフィードバックを返すようお願いします。今回は不十分です。例えば、私のレス、
> ユーザーインスタンスを使うとか、Entity Framework Code First で DB を作るというようなことがなければ、今の状態でも使えそうな気がします。
> どうしても EXPRESS 版でないとダメという理由(上のような理由)があるのですか?
や、MKIII さんからのレス、
> 構成マネージャの「SQL Serverサービス」でインストール済みSQL Serverを右クリックして、プロパティを開き、詳細設定のSKUにエディションが表示されるので、エディションを確認してみたらいかがでしょうか?
に答えてもらってないです。
- 編集済み SurferOnWww 2018年4月27日 1:18 訂正&追記
-
いろいろとご迷惑をお掛けして申し訳ありません。
「Visual Studio からの接続をしたいということであれば、新たに別のスレッドを立てて質問してください。」につきましては、SQL関係の課題が解決してから、別スレッドで質問したいと存じます。
勝手ですが、SQLServerの方は、引き続き、宜しくお願い致します。
「 結果、ローカルサーバーグループにSQLEXPRESSができました。これは正常のようです。と書いてあると思ったら、
SQLSERVERの方は、エラーとなります。これはSQLSERVERをインストールすれば、エラーがなくなると思っています。
と矛盾するようなことも書いてあるのですが・・・」
の件ですが、間違いだったと思います。
SSMSで、再度確認してみましたので、添付させて戴きます。
ローカルサーバーグループの****-s¥Sqlexpressのプロパティで接続テストを行いますと正常にテストできました。
次に、ローカルサーバーグループの****-sのプロパティで接続テストを行いますと、エラーが返ってきました。次のように、接続できないようです。
****-sは、コンピューター名です。
SQL Server EXPRESSをインストールしている時、SQLサーバー名にコンピューター名でつけた覚えがなく、
ローカルサーバーに表示されているのか分っていない状況です。
どうすれば接続出来るようになるのか、いろいろ参考資料を閲覧していますが、見当ついていない状況です。
宜しくご指導のほど、お願い致します。
takatsu
- 編集済み old_aged_bowler 2018年4月28日 7:55
-
質問者さんがアップされた画像を見ると(どれのことを言っているのか分からないと思いますので、以下にアップし直しておきます・・・見やすくなるようにトリミングしました)、
SQL Server Express の 2 つの名前付きインスタンスが、それぞれ SQLEXPRESS と MAGOME7_EXPRESS という名前でインストールされているように見えます。
> ローカルサーバーグループの****-s¥Sqlexpressのプロパティで接続テストを行いますと正常にテストできました。
とのことですが、それは前者の SQLEXPRESS という名前の SQL Server Express の名前付きインスタンスに接続されているようです。
> 次に、ローカルサーバーグループの****-sのプロパティで接続テストを行いますと、エラーが返ってきました。次のように、接続できないようです。
「****-s」というのはコンピューター名だと理解していますが、コンピューター名だけで接続できるのは既定のインスタンスに限られます。
なので、「****-sのプロパティで接続テスト」というのは、先にアンインストールした既定のインスタンスに接続に行っています。でも、既定のインスタンスはアンンストールしたので存在せず、接続に失敗しているということだと思います。
アップされた画像を見る限り、SQL Server Express の SQLEXPRESS という名前の名前付きインスタンスの方には接続できています。なので、このスレッドの目的は果たせていると思います。
もう一つの、MAGOME7_EXPRESS という名前の名前付きインスタンスは、いろいろいじっているうちに意図せずできてしまったものだと思いますが、とりあえずそれはそのままほっておいてもいいのでは?
なお、私の一番最初のレスで、[サーバーへの接続]ダイアログの画像を示して、
> 開発マシンのローカルの SQL Server Express に Windows 認証で接続するならサーバー名 (local)\sqlexpress で接続できると思いますが。
と書きましたが、ローカルの SQL Server に接続するなら、コンピューター名を使うのではなく (local) とするのがよさそうです。MSDN ライブラリでは (local) を使うようにと書いてあります。
MAGOME7_EXPRESS という名前の名前付きインスタンスにも (local)\MAGOME7_EXPRESS で接続できると思われます。お試しください。
- 編集済み SurferOnWww 2018年4月28日 8:39 訂正
- 回答としてマーク old_aged_bowler 2018年4月28日 11:23
-
有り難うございました。
SSMSで、magome7-sも、サーバー名magome7-s¥sqlexplessで接続テスト出来ました。
その状態で、保存しました。
まだお答えしてなかった忘れ物がありましたので、ここで、答えさせて戴きます。
「どうしても EXPRESS 版でないとダメという理由(上のような理由)があるのですか?」
EXPRESS 版に拘っているわけはありません。ほかのデータベースでも良かったのですが、
Visual Studio を先に学び始めて、そこにSQLサーバーにリンクして説明されていたところから選択させて貰ったものです。
「ローカルの SQL Server に接続するなら、コンピューター名を使うのではなく (local) とするのがよさそうです」
参考書を頼りにし、判別できる名称ならと思っていました。今後参考とさせて戴きます。まだ完全にSQLサーバーを理解しているものでもなく、ようやく接続出来るようになっただけです。
これから、データ入力用のデータベース作成等の作業が待っています。
以上で、このスレッドをクローズさせて戴きます。
有り難うございました。
本当にお世話になりました。
takatsu
- 編集済み old_aged_bowler 2018年4月28日 11:43
-
> SSMSで、magome7-sも、サーバー名magome7-s¥sqlexplessで接続テスト出来ました。
画像を見ると、magome7-s¥sqlexpless ではなくて、magome7-s¥magome7_sqlexpless ですよ。
そういうのは、一字一句間違いなく、きちんと書きましょうよ。
magome7_sqlexpless が名前付きインスタンスの名前だと私が言ったこと、理解できてますか?
あと、magome7-s ではなく (local) にしましょうと言いましたけど、聞いてもらってます?
そういうことを無視しないで、きちんと聞いてくれないと(聞いた上でそのようにできない理由があるのらその旨言ってくれないと)、情報を提供する意味がなくてガッカリなのですけど・・・
-
お返事遅れて申し訳ございませんでした。
お指導戴きました内容を、再度確認させて戴き、再度チャレンジ致しました。
まず、ご指示のことですけど、
ーーー画像を見ると、magome7-s¥sqlexpless ではなくて、magome7-s¥magome7_sqlexpless ですよ。
そういうのは、一字一句間違いなく、きちんと書きましょうよ。
良く分かりました。以前、プログラムを作っていた時に良く一字違いでエラーになったことがありました。
こういったところが大切なんですね。
ーーーmagome7_sqlexpless が名前付きインスタンスの名前だと私が言ったこと、理解できてますか?
完全には理解できていないかもしれませんが、これから作成して行くデータベースは、このインスタンスのもとで動作して行くのではないかと解釈しています。間違いでしょうか?
ーーーmagome7-s ではなく (local) にしましょうと言いましたけど、聞いてもらってます?
localのことは、修正しました。
その後、二度ほどアンインストールとインストールを行い、それでもうまく行かず、最後に出来上がったものを修正できることを知り、最終、次のような状況となりました。
このような状況ですが、如何でしょうか。
ご教授有り難うございます。
takatsu
-
> ーーーmagome7_sqlexpless が名前付きインスタンスの名前だと私が言ったこと、理解できてますか?> 完全には理解できていないかもしれませんが、これから作成して行くデータベースは、このインスタンスのもとで動作して行くのではないかと解釈しています。間違いでしょうか?
そのあたりは SQL Server の本を買って読むことをお勧めしますが、簡単に説明すると以下の通りです。
1 つのコンピューターに複数の SQL Server をインストールして同時に実行することができます。この時、個々の SQL Server を「インスタンス」と呼びます。インスタンスには「既定のインスタンス」「名前付きインスタンス」の2 種類があります(「ユーザーインスタンス」というのもありますが、これは廃止される方向なので忘れて良いと思います)。
複数インストールする場合は、普通は、最初にインストールするものを「既定のインスタンス」とし、2 つ目以降を識別できるよう特定の名前を付けて「名前付きインスタンス」とします。
ただし、SQL Server の Express 版をデフォルトでインストールすると、SQLEXPRESS という名前の「名前付きインスタンス」になります。
これをインストール時に設定を変更して「既定のインスタンス」にできますし、SQLEXPRESS をは別の名前の「名前付きインスタンス」とすることができます。
以上の説明で質問者さんが何をしたのか、そもそものやりたいことと合っているのか分かるでしょうか?
> localのことは、修正しました。> その後、二度ほどアンインストールとインストールを行い、それでもうまく行かず、最後に出来上がったものを修正できることを知り、最終、次のような状況となりました。
それは私の言ったことと違います。
開発マシンのローカルの SQL Server に接続するのだと理解していますが、であれば、コンピューター名に代えて (local) にしましょうと言ったのですけど・・・
#引用は上のように > を使うのが一般的ですので(ーーー ではなくて)、> を使うことをお勧めします。
- 編集済み SurferOnWww 2018年5月5日 23:44 訂正
-
早速のご指導有り難うございました。
>引用は上のように>を使うのが一般的です。
一般的ということを知りませんでした。メール等の返信時に自動的に>が付くので、メールだけなのかと思っていました。
>そのあたりは SQL Server の本を買って読むことをお勧めしますが、簡単に説明すると以下の通りです。
早速、SQL Server の本を良く読むことにします。
>以上の説明で質問者さんが何をしたのか、そもそものやりたいことと合っているのか分かるでしょうか?
既定のインスタンスを作ったということと思います。この既定のインスタンスに、マスターとなるのテーブルや、データー入力用のテーブルを作成し、データーを保存できるようになると思っています。入力するツールは、Webからと考えています。今は、一つのシステムを作り上げることが目的ですので、SQLサーバーも一つあれば充分かと思っています。
>開発マシンのローカルの SQL Server に接続するのだと理解していますが、であれば、コンピューター名に代えて (local) にしましょうと言ったのですけど・・・
仰る通りです。開発マシンのローカルの SQL Server に接続するのですが、コンピューター名に変更できないものと思っていました。今になって考えると、コンピューター名をLOCAIに変更すれば良かったわけですね。プロパティを使って、コンピューター名を変更できることを知らずに、遠回りしていた様なような気がします。これも本を読んでいないからでしょうね。本を読んで、出直します。
ご丁寧なご指導有り難うございました。
takatsu
- 編集済み old_aged_bowler 2018年5月6日 4:45
-
> 既定のインスタンスを作ったということと思います。
違います。何もわかってないですよ。
あなたのアップした以下の画像からすると(肝心な部分のみ切り取ってます)、
名前付きインスタンスです。
> 仰る通りです。開発マシンのローカルの SQL Server に接続するのですが、コンピューター名に変更できないものと思っていました。今になって考えると、コンピューター名をLOCAIに変更すれば良かったわけですね。
そこも何もわかってないですよ。
コンピューター名を変更するなんてことは全く必要ないです。接続文字列のサーバー名を変更するのです。
以下の記事で言うと Data Source の設定です。(日本語は翻訳が全くがダメですので英文で読んでください)
SqlConnection.ConnectionString Property
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(v=vs.110).aspx少し勉強してください。基本的な知識なしでは掲示板では話が通じません。正直、これ以上付き合い切れません。
#次回画像をアップする際はそのまま読めるように気遣いしてください。今のようにされてはつぶれて読めません。