2011-05-26 101 views
2

我有SQL Server 2008 Express兩次安裝兩次。第一個是默認的SQLExpress,第二個是我命名的。我們會說TestExpress。我知道如果我進入SQL Server註冊表,它會列出這兩個實例名稱,我可能從 那裏檢索這些信息。但無論如何,通過SQLDMO或任何.NET SQL引用來檢索它。枚舉sql express服務器

我打開SQL Server瀏覽器,我使用幾乎所有我能找到互聯網上的代碼(是的,我做到了),但他們都取得2項:{本地}和我的計算機名

我還檢查了服務器實例未隱藏。

我不想使用SMO,因爲我有SQL Server Express 2005和2008的計劃。使用特定版本的SMO將不允許我使用這兩個版本。

+0

爲什麼你已經在同一個程序的兩個實例安裝?你爲什麼不只是有兩個數據庫? – 2011-05-31 14:00:42

+1

@Ramhound。這是情景的一部分,客戶希望..數據庫被複制(我相信),以防萬一,一旦出現故障,他們可以連接到其他服務器上的其他數據庫,只需更改連接字符串..他們想要通過玩它安全地玩聰明:: – Gagan 2011-06-01 04:04:37

回答

0

到目前爲止您嘗試過哪些.NET代碼?

我收到了良好的效果在這個片段:

System.Data.Sql.SqlDataSourceEnumerator instance = System.Data.Sql.SqlDataSourceEnumerator.Instance; 
    System.Data.DataTable dataTable = instance.GetDataSources(); 
    foreach (System.Data.DataRow row in dataTable.Rows) 
    { 
     Console.WriteLine(row["ServerName"] + "\\" + row["InstanceName"]); 
    } 
+2

我得到空白行:(..雖然我得到的服務器名稱,我沒有得到實例名稱..我已經試過這個代碼..我現在正在做的是從註冊表中獲取....對於本地服務器..對於遠程服務器,我要求用戶輸入實例名稱..雖然我不明白爲什麼我沒有得到實例名稱..我試着用SQL瀏覽器打開以及.. – Gagan 2011-06-01 04:09:25