首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

如何查看與取得 SQL Server 實例名稱:五大方法完整指南

     編輯:關於SqlServer

方法一:服務管理員 / 企業管理員

  • 「服務」中找 SQL Server (MSSQLSERVER) → 括號內即實例名,預設實例顯示 MSSQLSERVER。
  • 企業管理員連線時下拉伺服器清單可見本機實例。

方法二:登錄機碼

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\InstalledInstances

值為陣列,列出所有已安裝實例名稱。

方法三:命令列工具

sqlcmd -L          -- 列出網路廣播實例
sqlcmd -Lc         -- 只列出本機實例
osql -L            -- 舊版工具同功能

方法四:T-SQL 系統函數與目錄檢視

-- 1. 目前連線實例名
SELECT SERVERPROPERTY('InstanceName');  -- 預設實例回傳 NULL

-- 2. 伺服器網路名稱
SELECT @@SERVERNAME;                    -- 'HOSTNAME\INSTANCE' 或 'HOSTNAME'

-- 3. 連結伺服器清單
EXEC sp_helpserver;
SELECT * FROM sys.sysservers;
SELECT * FROM sys.servers;

方法五:登錄讀取 (xp_regread)

EXECUTE xp_regread
    @rootkey = 'HKEY_LOCAL_MACHINE',
    @key = 'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL',
    @value_name = 'MSSQLSERVER';  -- 預設實例值為 'MSSQLSERVER'

方法六:C# 程式碼取得本機所有實例

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);
}

方法七:SQL-DMO (舊版)

// 需參考 SQLDMO.dll (SQL 2000/2005)
var app = new SQLDMO.ApplicationClass();
var list = app.ListAvailableSQLServers();
foreach (string s in list) Console.WriteLine(s);

快速判斷預設 vs 命名實例

SELECT CASE
    WHEN SERVERPROPERTY('InstanceName') IS NULL THEN @@SERVERNAME
    ELSE SERVERPROPERTY('InstanceName')
END AS InstanceName;

適用場景建議

  • 安裝腳本/部署自動化:sqlcmd -Lc 或登錄讀取。
  • 應用程式連線字串組裝:SERVERPROPERTY('InstanceName') + @@SERVERNAME。
  • 稽核/報表:sys.servers。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved