我正在創建使用SQL Server 2008的Windows窗體應用程序。在我有的安裝項目中,如果需要,請在目標機器上檢查並安裝SQL Server 2008。我需要的是一種獲得SQL Server 2008的方法 - 以及2008年的唯一實例名稱。如何查找包含默認實例的SQL Server 2008實例
現在我正在使用SmoApplication.EnumAvailableSqlServers
函數並檢查返回的版本,但我發現它不顯示默認實例。這對我來說是有問題的,因爲如果在我的安裝程序在目標機器上安裝SQL Server 2008之後運行此程序,則沒有可用的命名實例 - 只有默認實例。
我不想只是盲目地檢查,看看傳統的MSSQLSERVER
默認實例工作的原因有兩個:
這可能是從SQL Server 2008中遺留下來的默認實例安裝,從而贏得無法訪問我的應用程序使用的數據庫。跳過它然後檢查其他命名實例很可能不會返回任何內容。
它也可能是SQL Server 2012的新版本的默認實例。雖然此實例能夠訪問我的數據庫,但我的經驗是,它隨後將數據庫「升級」到新的SQL Server版本,並且早期版本將無法訪問它。由於我的應用程序旨在與SQL Server 2008協同工作,這給我帶來了一些問題。
,所以我需要使用任何SQL Server 2008命名實例或默認實例,如果它是2008年
有沒有辦法做到這一點?
我想我有一個使用SqlDataSourceEnumerator的解決方案。通過使用此實例成員的GetDataSources()方法,它看起來像默認實例顯示,但只給出默認實例運行的機器的名稱。沒有提供版本信息,這給我造成了一個問題。 – MWinstead 2012-07-27 19:34:54
看看我的答案,試試吧! – MAXE 2012-08-28 12:11:34