Resposta rápida
Basta executar o seguinte:
{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 sempre funciona, ao contrário das outras soluções que não funcionam quando:
- você não deseja escrever um programa (por exemplo, PowerShell)?
- as ferramentas cliente não foram instaladas (necessário para usar o SQLCMD.EXE)?
- Não há arquivo de log do SQL Server ou não há nenhum arquivo de log que contenha eventos de inicialização / reinicialização?
- O SQL Server não está em execução (portanto,
SELECT @@VERSION;
não é uma opção)?
Exemplo 1
Se você tiver apenas uma única instância instalada, não precisará usar a -s
opção:
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn>sqlservr.exe -v
Devoluções:
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
Exemplo 2
Se você tiver várias instâncias instaladas na máquina, também precisará usar a -s
opção para especificar em qual instância está interessada; caso contrário, poderá misturar informações da versão:
C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS2014\MSSQL\Binn>sqlservr.exe -v
-s SQLEXPRESS2014
Devoluções:
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
informação adicional
A maneira mais rápida, fácil e confiável de determinar as informações de versão de um programa é simplesmente solicitar essas informações ao programa. A maioria dos programas ( * .COM e * .EXE ) possui uma opção / sinalizador / parâmetro / opção / dealy-ma-bob da linha de comando que exibe informações de ajuda e / ou versão.
Dependendo do programa em si, a opção de linha de comando será prefixada com um dos seguintes:
E, novamente, dependendo do programa em si, a opção de linha de comando será uma das seguintes:
- Mais comum:
- Às vezes, incluído nas informações gerais da ajuda:
{Exemplos do SQL Server mostrados acima}
O utilitário de linha de comando SQLCMD.EXE, por outro lado, usa a -v
opção para passar valores variáveis para o script SQL, portanto, ele exibe apenas as informações da versão em sua exibição geral:
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]
O Bloco de notas, no entanto, possui apenas um conjunto muito limitado de opções de linha de comando e nenhuma delas exibe informações da versão.
Métodos alternativos e sem complicações:
Verifique o registro:
Chave: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ {VersionNumber} \ Tools \ Setup
Nome: Edição
Se você souber o número da versão (por exemplo, SQL Server 2012 = 110, SQL Server 2014 = 120, etc), poderá editar o Edition especificamente executando o seguinte em um prompt de comando:
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\{VersionNumber}\Tools\Setup" /v /e /f Edition
Retorna uma entrada semelhante à seguinte:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\Tools\Setup
Edition REG_SZ Developer Edition
Se você deseja ver a Edição para o que quer que esteja instalado, execute o seguinte em um prompt de comando:
REG QUERY "HKLM\SOFTWARE\Microsoft\Microsoft SQL Server" /s /v /e /f Edition
Retorna uma ou mais entradas semelhantes às mostradas acima e as seguintes:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL11E.LOCALDB\Setup
Edition REG_SZ Express Edition
Verifique o log de instalação:
C: \ Arquivos de programas \ Microsoft SQL Server \ {SQL Server versão: 110, 120, etc} \ Setup Bootstrap \ Log \ {date_time} \ Detail.txt
Para a cadeia "IsExpressSku":
(03) 2014-09-05 16:53:44 SQLEngine: --EffectiveProperties: IsExpressSku = True