こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLserverExpressへの接続文字列

下記のような構成で構築したWebシステムがあります。
OS:Windows Server 2008 Standard
言語:VB.NET
DB:SQL server 2008

それを下記の構成の環境へ移植しようと思いました。
OS:Windows Server 2008 Standard
言語:VB.NET
DB:SQL server 2008 ExpressEdition

移植したところSQLserverへの接続がうまくいかず、試行錯誤した末にSqlConnectionの接続文字列のsourceの部分をサーバ名のみに変更したところ、接続することが出来るようになりました。

【変更前】
workstation id=xxx;packet size=4096;user id=user;data source="servername\instance";persist security info=True;initial catalog=xxxdb;password=xxxxx

【変更後】
workstation id=xxx;packet size=4096;user id=user;data source="servername";persist security info=True;initial catalog=xxxdb;password=xxxxx

上記のsourceの部分は「サーバ名\インスタンス名」でよいと思うのですが(現に移植元の環境では接続できているので)、ExpressEditionの環境だとインスタンス名まで含めるとなぜか接続できません。
環境によっていちいち接続文字列を変更したくないのですが、ExpressEditionの場合は変更が必要なものなのでしょうか?それとも、何か設定が不足している等の原因でしょうか?ご存知の方がいらっしゃいましたら、ご教授いただけると幸いです。

投稿日時 - 2011-10-26 21:06:52

QNo.7096166

困ってます

質問者が選んだベストアンサー

デフォルト設定でインストールしている場合は、記載のような動きになることはありません。
まずは、サーバの設定状況の確認が必要です。

SQL Server構成マネージャで、両方のサーバーのインスタンス名を確認してください。
さらに、SQL Browserの起動有無も確認してください。

SQL Serverのサーバ名のみを指定した場合、
自動的にインスタンス名MSSQLSERVERが自動補完され、
MSSQLSERVERインスタンスに接続します。
次に、インスタンス名を指定した場合はSQL Browserが名前解決をします。

しかし、現在説明ただいている状況になるパターンが想像できません。
インスタンス名とポートの組み合わせの確認でしょうか。

//変更したくないとおっしゃられている以上、変更前と同じ接続文字列(サーバー名\インスタンス名も含めて)を使用しようとしているって認識であってますよね?

投稿日時 - 2011-10-26 23:42:45

お礼

norayuni様、早速のご回答ありがとうございます。
ご推察のとおり、変更前と同じ接続文字列を使用しようとしておりました。
アドバイスいただいたとおりSQL Browserの状況を確認したところ、起動しておりませんでしたので起動したところ、問題なく接続できるようになりました。大変助かりました。どうもありがとうございました。

投稿日時 - 2011-10-27 10:04:42

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)