我有一段代碼應該返回安裝在我的機器上的所有SQL Server實例。它看起來像這樣:爲什麼我的方法沒有返回任何有效的SQL Server實例?
DataTable dtLocalServers = SmoApplication.EnumAvailableSqlServers(true);
foreach (DataRow dServer in dtLocalServers.Rows)
{
Console.WriteLine(dServer.ToString());
}
它的工作,編譯和運行。但是,生成的數據表並不是非常有用。它看起來像這樣:
Name | Server | Instance | IsClustered | Version | IsLocal
IAN-PC | IAN-PC | | True | | True
的問題是,雖然這會返回一個結果,這並沒有給我關於服務器的任何信息。特別是,我試圖獲得版本(SQL Server 2008 Express R2或SQL Server Express 2012),我認爲它應該在'Version'字段中。我知道這樣一個事實,即我有兩份本地運行的副本用於測試。
還有什麼我可以做得到更好的結果嗎?
編輯:IAN-PC是我的電腦的名字。我的計算機上有兩個運行的SQL Server實例,IANSQLEXP(SQL Server 2008 Express R2)和SQLEXPRESS(SQL Server Express 2012)。在SQL Server配置管理器中,還有兩個未運行的代理程序和一個未運行的SQL Server瀏覽器。
您的表格具有'Version'作爲列。如果服務器是集羣的,它將不會返回一個版本。 – Romoku
我明白那一部分。有沒有其他的方式來檢查服務器?我們希望將服務放在客戶的計算機上,因此我們無法控制它們是否被羣集,並且仍然想檢查安裝的內容。這可能是一個愚蠢的問題,我不熟悉SQL Server的工作原理。 – ijb109
你的集羣實例是一個命名實例嗎? –