Версия MS SQL Server нужна перед обновлением, установкой драйвера, настройкой 1С, переносом базы или разбором ошибки в приложении. В этой статье показано, как узнать версию MS SQL Server через T-SQL, SERVERPROPERTY, SSMS, sqlcmd и PowerShell. Важно понять не только номер версии, но и редакцию: Express, Standard, Enterprise или Developer. От этого зависят лимиты, доступные функции и сценарий обслуживания.
Ниже несколько рабочих способов. Самый точный вариант — запрос через T-SQL. Если доступа к SQL-запросам нет, можно посмотреть версию через SSMS, sqlcmd или PowerShell.
Для сверки номера сборки с официальной документацией можно открыть Microsoft Learn: последние обновления и сборки SQL Server. Это справочник Microsoft по версиям и накопительным обновлениям.

Быстрый способ через T-SQL
Подключитесь к нужному экземпляру SQL Server и выполните простой запрос:
SELECT @@VERSION;
В ответе будет строка с продуктом, номером сборки, редакцией, операционной системой и архитектурой. Это удобно для быстрой проверки, но строка получается длинной, и её не всегда удобно вставлять в заявку или документацию.
Нормальный вариант: SERVERPROPERTY
Для аккуратного вывода лучше использовать функцию SERVERPROPERTY. Она возвращает отдельные поля, которые проще читать и сравнивать.
SELECT
SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('ProductUpdateLevel') AS ProductUpdateLevel,
SERVERPROPERTY('ProductBuild') AS ProductBuild;На практике чаще всего нужны три поля: ProductVersion, ProductLevel и Edition.
ProductVersion— номер версии и сборки, например15.0.4312.2.ProductLevel— уровень выпуска: RTM, SP, CU или GDR.Edition— редакция SQL Server: Express, Standard, Enterprise, Developer и так далее.ProductUpdateLevel— номер cumulative update, если сервер его отдаёт.ProductBuild— номер сборки без длинной строки@@VERSION.
Как понять, какая это версия SQL Server
Номер ProductVersion начинается с основной версии SQL Server. Например, 16.x — это SQL Server 2022, 15.x — SQL Server 2019, 14.x — SQL Server 2017.
SELECT
CASE PARSENAME(CONVERT(varchar(32), SERVERPROPERTY('ProductVersion')), 4)
WHEN '16' THEN 'SQL Server 2022'
WHEN '15' THEN 'SQL Server 2019'
WHEN '14' THEN 'SQL Server 2017'
WHEN '13' THEN 'SQL Server 2016'
WHEN '12' THEN 'SQL Server 2014'
WHEN '11' THEN 'SQL Server 2012'
WHEN '10' THEN 'SQL Server 2008 / 2008 R2'
ELSE 'Unknown / old version'
END AS SqlServerVersion,
SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('Edition') AS Edition;Для точного CU всё равно лучше сверять номер сборки с таблицей обновлений Microsoft. Но для первичной диагностики такого запроса обычно хватает.
Проверка через SQL Server Management Studio
Если вы работаете через SSMS, версию можно посмотреть без ручного запроса.
- Откройте SQL Server Management Studio.
- Подключитесь к нужному серверу или экземпляру.
- В Object Explorer нажмите правой кнопкой по серверу.
- Откройте Properties.
- На странице General посмотрите поля Product, Version и Edition.
Этот способ удобен, когда нужно быстро посмотреть информацию глазами. Для скрипта, мониторинга или заявки всё же лучше использовать T-SQL, чтобы не переписывать значения вручную.
Проверка через sqlcmd
Если SSMS нет, но установлен sqlcmd, версию можно получить из консоли. Для Windows Authentication:
sqlcmd -S localhost -E -Q "SELECT @@VERSION"
Для именованного экземпляра укажите его после обратного слэша:
sqlcmd -S localhost\SQLEXPRESS -E -Q "SELECT SERVERPROPERTY('ProductVersion'), SERVERPROPERTY('Edition')"Если используется SQL-логин:
sqlcmd -S server-name -U sql_user -P "password" -Q "SELECT @@VERSION"
Пароль в командной строке может попасть в историю команд или логи. На рабочем сервере лучше использовать Windows Authentication или вводить пароль безопаснее, если это поддерживает ваш сценарий.
Проверка через PowerShell
В PowerShell можно использовать модуль SqlServer и команду Invoke-Sqlcmd:
Invoke-Sqlcmd -ServerInstance "localhost" -Query "
SELECT
SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('ProductLevel') AS ProductLevelЕсли модуль не установлен, PowerShell сам по себе SQL Server не опросит. В таком случае проще использовать SSMS, sqlcmd или выполнить запрос из любого клиента, который умеет подключаться к SQL Server.
Если на сервере несколько экземпляров SQL Server
На одном Windows-сервере может быть несколько экземпляров SQL Server. Например, дефолтный экземпляр и отдельный SQLEXPRESS. Версию нужно проверять именно у того экземпляра, к которому подключается приложение.
localhostилиSERVERNAME— дефолтный экземпляр.localhost\SQLEXPRESS— именованный экземпляр SQLEXPRESS.SERVERNAME\INSTANCE— именованный экземпляр на удалённом сервере.
Если приложение подключается к SERVER\SQL2019, а вы проверили просто SERVER, можно легко посмотреть не тот SQL Server и сделать неправильный вывод.
Что отправить в поддержку или приложить к заявке
Обычно достаточно такого запроса:
SELECT
@@SERVERNAME AS ServerName,
SERVERPROPERTY('InstanceName') AS InstanceName,
SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('Collation') AS Collation;Он показывает имя сервера, экземпляр, версию, редакцию и collation. Этого хватает для большинства первичных разборов: совместимость, обновления, лимиты редакции, проблемы с переносом базы или подключением приложения.
Короткая шпаргалка по версиям
16.x— SQL Server 2022.15.x— SQL Server 2019.14.x— SQL Server 2017.13.x— SQL Server 2016.12.x— SQL Server 2014.11.x— SQL Server 2012.10.50.x— SQL Server 2008 R2.10.0.x— SQL Server 2008.
Если сервер старый, проверяйте не только номер версии, но и наличие последних обновлений. Для SQL Server это критично: старые сборки могут содержать исправленные позже ошибки, а некоторые версии уже давно сняты с поддержки.
Итог
Самый удобный способ узнать версию MS SQL Server — выполнить запрос с SERVERPROPERTY. @@VERSION хорош для быстрой проверки, но для документации и диагностики лучше получить отдельные поля: версию, редакцию, уровень обновления и имя экземпляра.



А если нужно не просто узнать номер сборки, а быстро понять, попадает ли сервер в нужный CU, вы обычно сверяете его вручную через Microsoft Learn или держите какой-то автоматический чекер под рукой?
Я обычно сначала сверяю
ProductVersionиEdition, а потом уже пробиваю точную сборку через Microsoft Learn. Для разовой проверки T-SQL хватает, но если серверов несколько, удобнее держать отдельную табличку или чекер, чтобы не искать вручную каждый раз[…] Как узнать версию MS SQL Server […]
[…] Как узнать версию MS SQL Server […]