- ベストアンサー
異なるSQL Server をインストールすると
お世話になります。 SQL Server 2005 SQL Server 2008 両方のデータを見たいのですが、1台のサーバーに両方のSQL Server をインストールした際に、 クライアントからの接続文字列というのはどのようになるのでしょうか? 同じサーバーですし、インスタンス作る云々という記事を見たのですが、実際どのようにすればいいのか、どのように接続文字列を作成するのかがわかりません。 簡単でかまいませんので、この辺りをご説明していただけますよう、 よろしくお願い申し上げます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
SQL Server のインストール時にインスタンスを作成しますが、その際 ・既定のインスタンス ・名前付きインスタンス のどちらかを指定します。 既定のインスタンスは1つのサーバーに1つのみ作成可能で MSSQLSERVERというインスタンス名が付けられます。 名前付きインスタンスは自由に名前をつけることが可能です。 これは1つのバージョンのSQLServerがインストールされている場合でも 異なるバージョンの複数のSQLServerがインストールされている場合でも 同様です。 例えば、2005で既定のインスタンスを作成した場合は、2008では 名前付きインスタンスを作成する必要があります。 接続文字列としては、既定のインスタンスへ接続する場合は接続先として 「コンピューター名」を指定しますが、名前付きインスタンスへ接続する場合は 「コンピューター名\インスタンス名」を指定します。
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
1台のWindowsに2つのMicrosoft SQL Serverをインストールすると、例えばTCP/IPでどちらも待ち受ける場合、ポート番号を分ける。どっちかが1433でもう一方が2433という具合に。 で、例えば、2つ目のインスタンスが名前付きインスタンスであり、かつインスタンス名はEXPRESSであり、かつインスタンスが待ち受けるポート番号が2433であり、かつこのサーバーのIPアドレスが192.168.x.5である場合は以下のような感じになる。 <connectionStrings> <add name="hogefuga" connectionString="Data Source=192.168.x.5¥EXPRESS,2433;Initial Catalog=(データベース名);User ID=(ユーザーID);Password=(パスワード)" providerName="System.Data.SqlClient"/> </connectionStrings> ちなみにIPアドレスが同じで、かつ名前なしインスタンス、かつポート番号が1433の場合はこう <connectionStrings> <add name="hogefuga" connectionString="Data Source=192.168.x.5;Initial Catalog=(データベース名);User ID=(ユーザーID);Password=(パスワード)" providerName="System.Data.SqlClient"/> </connectionStrings> つまり、インスタンス名とポート番号はData Sourceに指定するのだ。 もちろん接続に対する別名をつけてそちらをData Sourceにしても良い。別名をつけるためのプログラムは昔(SQL Server 2000の時代)はcliconfg.exeだったが、今はかわっているのかどうか分からない。
お礼
anmochi さん お世話になります。 ポート番号を分けてインストールして 接続するやり方もあるのですね!大変参考になりました。 ありがとうございました。
お礼
zaitoa さん お世話になります。 なるほど、インストール時に名前付きインスタンスを作成して、参照する場合の接続文字列のServer の指定で コンピュータ名\インスタンス名にすれば良いということが良くわかりました。 ありがとうございました。