Respuesta rápida
Simplemente ejecute lo siguiente:
{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".
Este método siempre funciona, a diferencia de las otras soluciones que no funcionarán cuando:
- no quieres escribir un programa (por ejemplo, PowerShell)?
- ¿No se han instalado las herramientas de cliente (necesario para usar SQLCMD.EXE)?
- ¿No hay un archivo de registro de SQL Server o no hay ningún archivo de registro que contenga eventos de inicio / reinicio?
- ¿SQL Server no se está ejecutando (por
SELECT @@VERSION;
lo tanto, no es una opción)?
Ejemplo 1
Si solo tiene una única Instancia instalada, no necesita usar el -s
conmutador:
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn>sqlservr.exe -v
Devoluciones:
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
Ejemplo 2
Si tiene instancias múltiples instaladas en la máquina, también debe usar el -s
interruptor para especificar qué instancia le interesa, de lo contrario, puede mezclar información de la versión:
C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS2014\MSSQL\Binn>sqlservr.exe -v
-s SQLEXPRESS2014
Devoluciones:
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
Información Adicional
La forma más rápida, fácil y confiable de determinar la información de versión de un programa es simplemente solicitar esa información al programa. La mayoría de los programas ( * .COM y * .EXE ) tienen un interruptor / indicador / parámetro / opción / dealy-ma-bob en la línea de comandos que mostrará información de ayuda y / o versión.
Dependiendo del programa en sí, el interruptor de la línea de comandos tendrá como prefijo uno de los siguientes:
Y, nuevamente, dependiendo del programa en sí, el interruptor de línea de comandos será uno de los siguientes:
- Más común:
- A veces incluido en la información de ayuda general:
{Ejemplos de SQL Server mostrados arriba}
La utilidad de línea de comandos SQLCMD.EXE, por otro lado, usa el -v
interruptor para pasar valores variables en el script SQL, por lo que solo muestra información de versión en su pantalla de información general:
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, sin embargo, solo tiene un conjunto muy limitado de modificadores de línea de comandos , y ninguno de ellos muestra información de versión.
Métodos alternativos sin complicaciones:
Revisa el registro:
Clave: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ {VersionNumber} \ Tools \ Setup
Name: Edition
Si conoce el número de versión (por ejemplo, SQL Server 2012 = 110, SQL Server 2014 = 120, etc.), puede realizar la Edición específicamente ejecutando lo siguiente en el símbolo del sistema:
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\{VersionNumber}\Tools\Setup" /v /e /f Edition
Devuelve una entrada similar a la siguiente:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup
Edition REG_SZ Developer Edition
Si desea ver la Edición para lo que sea que esté instalado, ejecute lo siguiente en el símbolo del sistema:
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server" /s /v /e /f Edition
Devuelve una o más entradas similares a la que se muestra arriba y lo siguiente:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\Setup
Edition REG_SZ Express Edition
Verifique el registro de instalación:
C: \ Archivos de programa \ Microsoft SQL Server \ {Versión de SQL Server: 110, 120, etc.} \ Setup Bootstrap \ Log \ {date_time} \ Detail.txt
Para la cadena "IsExpressSku":
(03) 2014-09-05 16:53:44 SQLEngine: --EffectiveProperties: IsExpressSku = True