Réponse rapide
Exécutez simplement ce qui suit:
{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".
Cette méthode fonctionne toujours, contrairement aux autres solutions qui ne fonctionneront pas lorsque:
- vous ne voulez pas écrire un programme (par exemple, PowerShell)?
- les outils client n'ont pas été installés (requis pour utiliser SQLCMD.EXE)?
- Il n'existe aucun fichier journal SQL Server ou aucun fichier journal contenant des événements de démarrage / redémarrage?
- SQL Server n'est pas en cours d'exécution (
SELECT @@VERSION;
n'est donc pas une option)?
Exemple 1
Si vous n'avez qu'une seule instance installée, vous n'avez pas besoin d'utiliser le -s
commutateur:
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn>sqlservr.exe -v
Retour:
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
Exemple 2
Si plusieurs instances sont installées sur la machine, vous devez également utiliser le -s
commutateur pour spécifier l'instance qui vous intéresse, sinon elle peut mélanger les informations de version:
C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS2014\MSSQL\Binn>sqlservr.exe -v
-s SQLEXPRESS2014
Retour:
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
Information additionnelle
Le moyen le plus rapide, le plus simple et le plus fiable pour déterminer les informations de version d'un programme est simplement de demander ces informations au programme. La plupart des programmes ( * .COM et * .EXE ) ont un commutateur de ligne de commande / drapeau / paramètre / option / dealy-ma-bob qui affichera l'aide et / ou les informations de version.
Selon le programme lui-même, le commutateur de ligne de commande sera préfixé par l'un des éléments suivants:
Et, toujours en fonction du programme lui-même, le commutateur de ligne de commande sera l'un des suivants:
- Le plus commun:
- Parfois inclus dans les informations d'aide générales:
{Exemples SQL Server illustrés ci-dessus}
L'utilitaire de ligne de commande SQLCMD.EXE, d'autre part, utilise le -v
commutateur pour passer des valeurs de variable dans le script SQL, de sorte qu'il n'affiche que les informations de version dans son affichage d'informations générales:
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, cependant, ne dispose que d'un ensemble très limité de commutateurs de ligne de commande , et aucun d'entre eux n'affiche les informations de version.
Méthodes alternatives et simples:
Vérifiez le registre:
Clé: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ {VersionNumber} \ Tools \ Setup
Name: Edition
Si vous connaissez le numéro de version (par exemple, SQL Server 2012 = 110, SQL Server 2014 = 120, etc.), vous pouvez l'édition spécifique pour celui-ci en exécutant ce qui suit à une invite de commandes:
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\{VersionNumber}\Tools\Setup" /v /e /f Edition
Renvoie une entrée similaire à la suivante:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup
Edition REG_SZ Developer Edition
Si vous voulez voir l'édition pour tout ce qui est installé, exécutez ce qui suit à l'invite de commandes:
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server" /s /v /e /f Edition
Renvoie une ou plusieurs entrées similaires à celle illustrée ci-dessus et les suivantes:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\Setup
Edition REG_SZ Express Edition
Consultez le journal d'installation:
C: \ Program Files \ Microsoft SQL Server \ {SQL Server version: 110, 120, etc} \ Setup Bootstrap \ Log \ {date_time} \ Detail.txt
Pour la chaîne "IsExpressSku":
(03) 2014-09-05 16:53:44 SQLEngine: --EffectiveProperties: IsExpressSku = True