首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server 快速檢測 Service Pack 版本與補丁安裝狀態

     編輯:MySQL 資料庫相關知識

確認 SQL Server 實例是否安裝特定 Service Pack (SP) 或累積更新 (CU),可用系統函數 SERVERPROPERTY 與全域變數 @@VERSION 快速查詢,無需登入作業系統檢視「程式和功能」。

核心查詢

-- 1. 產品層級 (RTM / SPx / CTP)
SELECT SERVERPROPERTY('ProductLevel') AS ProductLevel;
-- 輸出範例: 'RTM', 'SP1', 'SP2', 'SP3', 'SP4', 'CTP3.2'

-- 2. 完整版本字串 (含組建號、版次、OS)
SELECT @@VERSION;
-- 輸出範例:
-- Microsoft SQL Server 2019 (RTM-CU15) (KB5018765) - 15.0.4223.1 (X64)
--   Sep 17 2022 02:45:32
--   Copyright (C) 2019 Microsoft Corporation
--   Developer Edition (64-bit) on Windows Server 2019 Datacenter 10.0  (Build 17763: ) (Hypervisor)

-- 3. 解析主要版本號、組建號、版次
SELECT
    SERVERPROPERTY('ProductVersion') AS ProductVersion,   -- 15.0.4223.1
    SERVERPROPERTY('ProductMajorVersion') AS MajorVer,    -- 15
    SERVERPROPERTY('ProductMinorVersion') AS MinorVer,    -- 0
    SERVERPROPERTY('ProductBuild') AS BuildNum,           -- 4223
    SERVERPROPERTY('ProductBuildType') AS BuildType,      -- 'KJB' (GDR/CU/HF)
    SERVERPROPERTY('ProductUpdateLevel') AS UpdateLevel,  -- 'CU15'
    SERVERPROPERTY('ProductUpdateReference') AS KBArticle;-- 'KB5018765'

版本號對照表 (常見版本)

版本主要版本號RTM 組建號最新 SP/CU (截至 2024)
SQL Server 20221616.0.1000.6CU12 (16.0.4115.5)
SQL Server 20191515.0.2000.5CU25 (15.0.4365.2)
SQL Server 20171414.0.1000.169CU31 (14.0.3460.9)
SQL Server 20161313.0.1601.5SP2 CU17 (13.0.5888.11)
SQL Server 20141212.0.2000.8SP3 CU4 (12.0.6372.1)
SQL Server 20121111.0.2100.60SP4 (11.0.7001.0)
SQL Server 2008 R210.5010.50.1600.1SP3 (10.50.6000.34)
SQL Server 200810.010.0.1600.22SP4 (10.0.6000.29)
SQL Server 20059.009.00.1399.06SP4 (9.00.5000.00)
SQL Server 20008.008.00.194SP4 (8.00.2039)

自動化巡檢腳本 (多實例)

-- 在 CMS (Central Management Server) 或 PowerShell 迴圈執行
SELECT
    @@SERVERNAME AS InstanceName,
    SERVERPROPERTY('ProductVersion') AS Version,
    SERVERPROPERTY('ProductLevel') AS Level,
    SERVERPROPERTY('ProductUpdateLevel') AS UpdateLevel,
    SERVERPROPERTY('ProductUpdateReference') AS KB,
    SERVERPROPERTY('Edition') AS Edition,
    CASE
        WHEN SERVERPROPERTY('ProductUpdateLevel') LIKE 'CU%' THEN 'Cumulative Update'
        WHEN SERVERPROPERTY('ProductLevel') LIKE 'SP%' THEN 'Service Pack'
        ELSE 'RTM/GDR'
    END AS PatchType
FROM sys.servers;  -- 若在 CMS 執行

補充:檢查特定 KB 是否安裝

-- 透過組建號判斷 (需對照官方 KB 文章列出的組建號)
-- 例:檢查是否包含 KB5018765 (SQL 2019 CU15, Build 4223)
SELECT CASE
    WHEN CAST(SERVERPROPERTY('ProductBuild') AS INT) >= 4223 THEN '已安裝 CU15 或更新'
    ELSE '未安裝 CU15'
END AS CU15_Status;

注意事項

  • ProductLevel 僅反映 SP 層級,**不包含 CU/GDR**。必須看 ProductUpdateLevel (SQL 2017+) 或解析 @@VERSION 字串。
  • Express、Developer、Evaluation 版本組建號與 Enterprise/Standard 同步。
  • AlwaysOn 可用性群組中,主/次複本版本必須一致,否則無法加入/同步。
  • 修補程式安裝後**必須重啟 SQL Server 服務** (或故障轉移) 才生效。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved