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

使用 sqlcmd 指令掃描區域網路所有 SQL Server 實例

     編輯:關於SqlServer

前言

SSMS 與 Visual Studio 的「連線到伺服器」對話框皆可列出網路內可用的 SQL Server 實例。若需在腳本/程式中自動探索,可使用內建命令列工具 sqlcmd (SQL 2005+) 或舊版 osql (SQL 2000)。

指令用法

sqlcmd -L
osql -L
  • -L (大寫):列出廣播封包可見的所有 SQL Server 實例。
  • 輸出格式:伺服器名稱\n實例名稱\n版本資訊\n...

實測畫面

SSMS 連線對話框 VS 連線對話框 sqlcmd -L 輸出

osql vs sqlcmd 差異

(local) 為本機預設實例別名,sqlcmd 直接解析為實際電腦名,避免混淆。

應用場景

  • 安裝腳本自動偵測目標實例。
  • 健康檢查腳本巡檢叢集/可用性群組節點。
  • CI/CD Pipeline 動態取得部署目標。

程式碼呼叫範例

// C# 呼叫 sqlcmd -L 並解析輸出
var psi = new ProcessStartInfo("sqlcmd", "-L") {
    RedirectStandardOutput = true,
    UseShellExecute = false,
    CreateNoWindow = true
};
using (var proc = Process.Start(psi)) {
    string output = proc.StandardOutput.ReadToEnd();
    // 解析 output 取得實例清單
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
項目osql (SQL 2000)sqlcmd (SQL 2005+)
輸出包含 (local)是否 (直接顯示實際機器名)
Unicode 支援弱原生支援 (-u 輸出 Unicode)
參數豐富度基礎完整 (變數、腳本、錯誤處理、格式化輸出)
維護狀態已淘汰持續更新