Страницы

Поиск по вопросам

вторник, 30 октября 2018 г.

Как узнать версию установленного SQL сервера?

Добрый день, я знаю про 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?

Комментариев нет:

Отправить комментарий