SQL Server (MSSQLSERVER) → 括號內即實例名,預設實例顯示 MSSQLSERVER。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstalledInstances
值為陣列,列出所有已安裝實例名稱。
sqlcmd -L -- 列出網路廣播實例
sqlcmd -Lc -- 只列出本機實例
osql -L -- 舊版工具同功能
-- 1. 目前連線實例名
SELECT SERVERPROPERTY('InstanceName'); -- 預設實例回傳 NULL
-- 2. 伺服器網路名稱
SELECT @@SERVERNAME; -- 'HOSTNAME\INSTANCE' 或 'HOSTNAME'
-- 3. 連結伺服器清單
EXEC sp_helpserver;
SELECT * FROM sys.sysservers;
SELECT * FROM sys.servers;
EXECUTE xp_regread
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = 'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL',
@value_name = 'MSSQLSERVER'; -- 預設實例值為 'MSSQLSERVER'
using Microsoft.Win32;
var rk = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");
var instances = (string[])rk.GetValue("InstalledInstances");
foreach (var inst in instances)
{
Console.WriteLine(inst == "MSSQLSERVER" ? Environment.MachineName : Environment.MachineName + @"\" + inst);
}
// 需參考 SQLDMO.dll (SQL 2000/2005)
var app = new SQLDMO.ApplicationClass();
var list = app.ListAvailableSQLServers();
foreach (string s in list) Console.WriteLine(s);
SELECT CASE
WHEN SERVERPROPERTY('InstanceName') IS NULL THEN @@SERVERNAME
ELSE SERVERPROPERTY('InstanceName')
END AS InstanceName;
sqlcmd -Lc 或登錄讀取。SERVERPROPERTY('InstanceName') + @@SERVERNAME。sys.servers。