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だったが、今はかわっているのかどうか分からない。
お礼
zaitoa さん お世話になります。 なるほど、インストール時に名前付きインスタンスを作成して、参照する場合の接続文字列のServer の指定で コンピュータ名\インスタンス名にすれば良いということが良くわかりました。 ありがとうございました。