Добрый день, я знаю про SELECT @@VERSION, а есть другие способы?
Ответ
Есть 2 основных ситуации при получении версии Microsft SQL Server:
У вас есть возможность подключиться к серверу (через SSMS, sqlcmd или любой другой клиент)
У вас нет возможности подключиться к серверу, но есть доступ к серверу Windows (или Linux если это SQL Server 2017)
Рассмотрим сначала первый вариант.
Большая часть информации доступна и поддерживается в актуальном виде в отличной и крайне рекомендуемой к прочтению KB321185: Определение версии, выпуска и уровня обновления системы SQL Server и ее компонентов
Подключитесь к серверу через SSMS.
После подключения в обозревателе объектов в нем будут отображаться сведения о выпуске (в скобках), наряду с именем пользователя, которое используется для подключения к конкретному экземпляру SQL Server.
С помощью запроса: SELECT @@VERSION;. Пример вывода для последней на текущий момент версии SQL Server 2016 SP1 CU4 (подробнее о версиях и обновлениях SQL Server можно прочитать здесь):
Microsoft SQL Server 2016 (SP1-CU4) (KB4024305) – 13.0.4446.0 (X64)
Jul 16 2017 18:08:49
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows …
Запрос работающий для всех версий SQL Server, начиная с 2000:
SELECT SERVERPROPERTY('ProductVersion') AS ProductVersion
, SERVERPROPERTY('ProductLevel') AS ProductLevel
, SERVERPROPERTY('Edition') AS Edition;
Расширенная версия со всеми возможными свойствами сервера (взята из замечательных диагностических запросов Glenn Berry), но некоторые параметры доступны только для последних версий SQL Server:
SELECT SERVERPROPERTY('MachineName') AS [MachineName]
, SERVERPROPERTY('ServerName') AS [ServerName]
, SERVERPROPERTY('InstanceName') AS [Instance]
, SERVERPROPERTY('IsClustered') AS [IsClustered]
, SERVERPROPERTY('ComputerNamePhysicalNetBIOS') AS [ComputerNamePhysicalNetBIOS]
, SERVERPROPERTY('Edition') AS [Edition]
, SERVERPROPERTY('ProductLevel') AS [ProductLevel] -- What servicing branch (RTM/SP/CU)
, SERVERPROPERTY('ProductUpdateLevel') AS [ProductUpdateLevel] -- Within a servicing branch, what CU# is applied
, SERVERPROPERTY('ProductVersion') AS [ProductVersion]
, SERVERPROPERTY('ProductMajorVersion') AS [ProductMajorVersion]
, SERVERPROPERTY('ProductMinorVersion') AS [ProductMinorVersion]
, SERVERPROPERTY('ProductBuild') AS [ProductBuild]
, SERVERPROPERTY('ProductBuildType') AS [ProductBuildType] -- Is this a GDR or OD hotfix (NULL if on a CU build)
, SERVERPROPERTY('ProductUpdateReference') AS [ProductUpdateReference] -- KB article number that is applicable for this build
, SERVERPROPERTY('ProcessID') AS [ProcessID]
, SERVERPROPERTY('Collation') AS [Collation]
, SERVERPROPERTY('IsFullTextInstalled') AS [IsFullTextInstalled]
, SERVERPROPERTY('IsIntegratedSecurityOnly') AS [IsIntegratedSecurityOnly]
, SERVERPROPERTY('FilestreamConfiguredLevel') AS [FilestreamConfiguredLevel]
, SERVERPROPERTY('IsHadrEnabled') AS [IsHadrEnabled]
, SERVERPROPERTY('HadrManagerStatus') AS [HadrManagerStatus]
, SERVERPROPERTY('InstanceDefaultDataPath') AS [InstanceDefaultDataPath]
, SERVERPROPERTY('InstanceDefaultLogPath') AS [InstanceDefaultLogPath]
, SERVERPROPERTY('BuildClrVersion') AS [Build CLR Version]
, SERVERPROPERTY('IsXTPSupported') AS [IsXTPSupported]
, SERVERPROPERTY('IsPolybaseInstalled') AS [IsPolybaseInstalled] -- New for SQL Server 2016
, SERVERPROPERTY('IsAdvancedAnalyticsInstalled') AS [IsRServicesInstalled] -- New for SQL Server 2016
;
Начиная с выпуска SQL Server 2008, можно также использовать отчет об обнаруженных установленных компонентах SQL Server. Этот отчет можно найти на странице Сервис -> Центра установки SQL Server. Это средство отображает сведения обо всех экземплярах SQL Server, установленных в системе. К ним относятся клиентские средства, такие как SQL Server Management Studio. Единственное, о чем необходимо помнить: это средство может выполняться только локально, в системе, в которой установлен экземпляр SQL Server. Его нельзя использовать для получения сведений об удаленных серверах. Подробнее здесь
Теперь рассмотрим способы узнать версию для второго варианта когда у вас нет возможности (или прав) подключится к SQL Server:
{InstanceHome}\MSSQL\Binn\sqlservr.exe -v [-s InstanceName]
Если на сервере установлен только один инстанс SQL Server, то -s не нужен:
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn>sqlservr.exe -v
В противном случае необходимо указать название интересующего инстанса, например:
C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS2014\MSSQL\Binn>sqlservr.exe -v -s SQLEXPRESS2014
Если операционная система Windows, то можно проверить ветку реестра:
Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{VersionNumber}\Tools\Setup
Name: Edition
В командной строке cmd:
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\{VersionNumber}\Tools\Setup" /v /e /f Edition
Через скрипт Powershell:
$inst = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances
foreach ($i in $inst){
$p = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL').$i
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Edition
(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Version
}
Просмотрите первые несколько строк в файле журнала ошибок для данного экземпляра. По умолчанию журнал ошибок размещается в файлах Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG и ERRORLOG.n
За более детальной информацией можно обратиться сюда: How do you find SQL Server version/edition without SSMS installed?
Комментариев нет:
Отправить комментарий