SQL Server 2008 を使用する Windows フォーム アプリケーションを作成しています。セットアップ プロジェクトで、必要に応じて SQL Server 2008 を確認し、ターゲット マシンにインストールします。私が必要としているのは、SQL Server 2008 (および 2008 のみ) のインスタンス名を取得する方法です。
現在、SmoApplication.EnumAvailableSqlServers
関数を使用して返されたバージョンを確認していますが、デフォルトのインスタンスが表示されないことがわかりました。ターゲット マシンでインストーラーが SQL Server 2008 をセットアップした後にこのプログラムが実行されている場合、名前付きインスタンスが使用できず、既定のインスタンスしか使用できないため、これは問題です。
MSSQLSERVER
以下の 2 つの理由から、従来の既定のインスタンスが機能するかどうかをやみくもにチェックしたくありません。
これは、SQL Server 2008 のインストールから残った既定のインスタンスである可能性があり、アプリケーションで使用される DB にアクセスできません。それをスキップして、他の名前付きインスタンスをチェックしても、おそらく何も返されません。
また、新しいバージョンの SQL Server 2012 の既定のインスタンスである可能性もあります。このインスタンスは DB にアクセスできますが、私の経験では、DB が新しい SQL Server バージョンに「アップグレード」され、以前のバージョンはアクセスできません。アクセスできません。私のアプリケーションは SQL Server 2008 で動作することを意図しているため、いくつかの問題が発生します。
そのため、SQL Server 2008 の名前付きインスタンス、または 2008 の場合は既定のインスタンスを使用する必要があります。
これを行う方法はありますか?