如何動態取得伺服器上的 SQL Server 執行個體
運用場景:
有些朋友開發的軟體在安裝的過程中,會需要在安裝同時對資料庫做相關的操作,如新增資料庫等,
所以需要將該機器上所執行的 SQL Server 的執行個體皆列出,讓使用者選擇要安裝在那一個執行個體,
要達到這個需求的方法很多,筆者分享如何使用 SMO 來做到這個功能:
使用下列的程式碼需先引用 Microsoft.SqlServer.Smo
程式碼:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Management.Smo.Wmi;
namespace SmoListSQLInstanceName
{
class Program
{
static void Main(string[] args)
{
string machineName = ".";
ManagedComputer computer = new ManagedComputer(machineName);
foreach (ServerInstance serverInstance in computer.ServerInstances)
{
if (serverInstance.Name == "MSSQLSERVER")
{
Console.WriteLine(serverInstance.Parent.Name);
}
else
{
Console.WriteLine(serverInstance.Parent.Name + "\\" + serverInstance.Name);
}
}
}
}
}
Result:
從結果看到筆者的電腦裝有兩個SQL Server 執行個體,
我們便可以直接將這些字串加入到一個下拉選單,等使用者選擇後,再將之代入到 ConnetionString中 ,達到動態變換欲連線的 SQL Server 執行個體
筆者的環境為 Vista + SQL 2005 Dev with SP2 + Visual Studio 2005 Team Suit SP1 + Database Professional with SR1&Power Tool。