Быстрый ответ
Просто запустите следующее:
{InstanceHome}\MSSQL\Binn\sqlservr.exe -v [-s InstanceName]
NOTE ABOUT SQL Server Express LocalDB: LocalDB can only be determined by the
existence of the following folder:
C:\Program Files\Microsoft SQL Server\{SQL Server Version: 110, 120, etc}\LocalDB\Binn
Running "sqlserver.exe -v" doesn't help as it reports as being "Developer Edition", and
searching the Registry it reports as being "Express Edition".
Этот метод всегда работает, в отличие от других решений, которые не будут работать, когда:
- Вы не хотите писать программу (например, PowerShell)?
- клиентские инструменты не были установлены (необходимо использовать SQLCMD.EXE)?
- Нет или файла журнала SQL Server, или нет файла журнала, который содержит какие-либо события запуска / перезапуска?
- SQL Server не работает (следовательно,
SELECT @@VERSION;
это не вариант)?
Пример 1
Если у вас установлен только один экземпляр, вам не нужно использовать -s
переключатель:
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn>sqlservr.exe -v
Возвращает:
2015-08-01 11:40:11.63 Server Logging to event log is disabled. Startup option '-v' is supplied, either from the registry or the command prompt.
2015-08-01 11:40:11.63 Server Microsoft SQL Server 2012 - 11.0.5343.0 (X64)
May 4 2015 19:11:32
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
2015-08-01 11:40:11.63 Server (c) Microsoft Corporation.
2015-08-01 11:40:11.63 Server All rights reserved.
2015-08-01 11:40:11.63 Server Server process ID is 3824.
2015-08-01 11:40:11.63 Server System Manufacturer: '{CompanyName}', System Model: '{ModelNumber}'.
2015-08-01 11:40:11.63 Server Authentication mode is MIXED.
2015-08-01 11:40:11.63 Server The service account is '{AccountName}'. This is an informational message; no user action is required.
2015-08-01 11:40:11.63 Server SQL Server shutdown has been initiated
Пример 2
Если на машине установлено несколько Экземпляров, вам также нужно использовать -s
переключатель, чтобы указать, какой Экземпляр вас интересует, иначе он может смешивать информацию о версии:
C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS2014\MSSQL\Binn>sqlservr.exe -v
-s SQLEXPRESS2014
Возвращает:
2015-08-01 12:01:13.13 Server Logging to event log is disabled. Startup option '-v' is supplied, either from the registry or the command prompt.
2015-08-01 12:01:13.13 Server Microsoft SQL Server 2014 - 12.0.4213.0 (X64)
Jun 9 2015 12:06:16
Copyright (c) Microsoft Corporation
Express Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
2015-08-01 12:01:13.13 Server UTC adjustment: -4:00
2015-08-01 12:01:13.13 Server (c) Microsoft Corporation.
2015-08-01 12:01:13.13 Server All rights reserved.
2015-08-01 12:01:13.13 Server Server process ID is 1712.
2015-08-01 12:01:13.13 Server System Manufacturer: '{CompanyName}', System Model: '{ModelNumber}'.
2015-08-01 12:01:13.13 Server Authentication mode is WINDOWS-ONLY.
2015-08-01 12:01:13.13 Server The service account is '{AccountName}'. This is an informational message; no user action is required.
2015-08-01 12:01:13.13 Server SQL Server shutdown has been initiated
Дополнительная информация
Самый быстрый, простой и надежный способ определить информацию о версии программы - просто запросить эту информацию у программы. Большинство программ ( * .COM и * .EXE ) имеют переключатель командной строки / flag / parameter / option / dealy-ma-bob, который будет отображать справку и / или информацию о версии.
В зависимости от самой программы переключателю командной строки будет присвоен один из следующих префиксов:
И, опять же, в зависимости от самой программы, переключатель командной строки будет одним из следующих:
- Наиболее общий:
- Иногда включается в общую справочную информацию:
{Примеры SQL Server, показанные выше}
Утилита командной строки SQLCMD.EXE, с другой стороны, использует -v
переключатель для передачи значений переменных в сценарий SQL, поэтому она отображает информацию только о версии в своем общем информационном окне:
C:\>sqlcmd /?
Microsoft (R) SQL Server Command Line Tool
Version 11.0.2100.60 NT x64
Copyright (c) 2012 Microsoft. All rights reserved.
usage: Sqlcmd [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
...
[-v var = "value"...] ...
...
[-? show syntax summary]
Однако NotePad имеет очень ограниченный набор параметров командной строки , и ни один из них не отображает информацию о версии.
Альтернативные методы без суеты:
Проверьте реестр:
Ключ: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ {VersionNumber} \ Инструменты \
Имя установки : выпуск
Если вам известен номер версии (например, SQL Server 2012 = 110, SQL Server 2014 = 120 и т. Д.), Вы можете специально установить его для Edition, запустив в командной строке следующее:
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\{VersionNumber}\Tools\Setup" /v /e /f Edition
Возвращает одну запись, аналогичную следующей:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup
Edition REG_SZ Developer Edition
Если вам нужно увидеть, что Edition для того, что происходит, установлено, выполните в командной строке следующее:
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server" /s /v /e /f Edition
Возвращает одну или несколько записей, аналогичных показанным выше, и следующее:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\Setup
Edition REG_SZ Express Edition
Проверьте журнал установки:
C: \ Program Files \ Microsoft SQL Server \ {Версия SQL Server: 110, 120 и т. Д.} \ Setup Bootstrap \ Log \ {date_time} \ Detail.txt
Для строки "IsExpressSku":
(03) 2014-09-05 16:53:44 SQLEngine: --EffectiveProperties: IsExpressSku = True