確認 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 2022 | 16 | 16.0.1000.6 | CU12 (16.0.4115.5) |
| SQL Server 2019 | 15 | 15.0.2000.5 | CU25 (15.0.4365.2) |
| SQL Server 2017 | 14 | 14.0.1000.169 | CU31 (14.0.3460.9) |
| SQL Server 2016 | 13 | 13.0.1601.5 | SP2 CU17 (13.0.5888.11) |
| SQL Server 2014 | 12 | 12.0.2000.8 | SP3 CU4 (12.0.6372.1) |
| SQL Server 2012 | 11 | 11.0.2100.60 | SP4 (11.0.7001.0) |
| SQL Server 2008 R2 | 10.50 | 10.50.1600.1 | SP3 (10.50.6000.34) |
| SQL Server 2008 | 10.0 | 10.0.1600.22 | SP4 (10.0.6000.29) |
| SQL Server 2005 | 9.00 | 9.00.1399.06 | SP4 (9.00.5000.00) |
| SQL Server 2000 | 8.00 | 8.00.194 | SP4 (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 文章列出的組建號)
-- 例:檢查是否包含 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 字串。