Risposta rapida
Esegui solo quanto segue:
{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".
Questo metodo funziona sempre, a differenza delle altre soluzioni che non funzioneranno quando:
- non vuoi scrivere un programma (ad esempio, PowerShell)?
- gli strumenti client non sono stati installati (richiesto per utilizzare SQLCMD.EXE)?
- Non esiste alcun file di registro di SQL Server o non esiste alcun file di registro che contiene eventi di avvio / riavvio?
- SQL Server non è in esecuzione (quindi
SELECT @@VERSION;non è un'opzione)?
Esempio 1
Se è installata una sola istanza, non è necessario utilizzare l' -sopzione:
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn>sqlservr.exe -v
Ritorna:
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
Esempio 2
Se sul computer sono installate più istanze, è necessario utilizzare anche l' -sinterruttore per specificare a quale istanza si è interessati, altrimenti è possibile mescolare le informazioni sulla versione:
C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS2014\MSSQL\Binn>sqlservr.exe -v
-s SQLEXPRESS2014
Ritorna:
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
Informazioni aggiuntive
Il modo più rapido, semplice e affidabile per determinare le informazioni sulla versione di un programma è semplicemente quello di richiedere tali informazioni al programma. La maggior parte dei programmi ( * .COM e * .EXE ) hanno un interruttore della riga di comando / flag / parametro / opzione / dealy-ma-bob che visualizzerà la guida e / o le informazioni sulla versione.
A seconda del programma stesso, l'opzione della riga di comando sarà preceduta da una delle seguenti opzioni:
E, sempre a seconda del programma stesso, l'opzione della riga di comando sarà una delle seguenti:
- Più comuni:
- A volte incluso nelle informazioni di aiuto generali:
{Esempi di SQL Server mostrati sopra}
L'utilità della riga di comando SQLCMD.EXE, d'altra parte, utilizza l'opzione -vper passare valori variabili nello script SQL, quindi visualizza solo le informazioni sulla versione nella sua visualizzazione delle informazioni generali:
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, tuttavia, ha solo un set molto limitato di opzioni della riga di comando e nessuna di esse visualizza le informazioni sulla versione.
Metodi alternativi e senza complicazioni:
Controlla il registro:
Chiave: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ {VersionNumber} \ Tools \ Setup
Nome: Edition
Se si conosce il numero di versione (ad es. SQL Server 2012 = 110, SQL Server 2014 = 120, ecc.), È possibile eseguire l'Edizione specificatamente eseguendo quanto segue al prompt dei comandi:
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\{VersionNumber}\Tools\Setup" /v /e /f Edition
Restituisce una voce simile alla seguente:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup
Edition REG_SZ Developer Edition
Se vuoi vedere l'edizione per qualsiasi cosa accada, esegui quanto segue al prompt dei comandi:
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server" /s /v /e /f Edition
Restituisce una o più voci simili a quella mostrata sopra e alle seguenti:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\Setup
Edition REG_SZ Express Edition
Controlla il registro di installazione:
C: \ Programmi \ Microsoft SQL Server \ {Versione SQL Server: 110, 120, ecc} \ Setup Bootstrap \ Log \ {date_time} \ Detail.txt
Per la stringa "IsExpressSku":
(03) 2014-09-05 16:53:44 SQLEngine: --EffectiveProperties: IsExpressSku = True