Como descobrir qual edição está instalada sem ter o estúdio de gerenciamento instalado? Tenho um servidor que funciona como gerenciador de licenças para outro software. Após a investigação de um alerta de alto uso de RAM, descobri que o processo sqlservr.exe está ocupando quase 2 GB de RAM.
Eu olhei através do menu do programa e descobri que o gerenciador de configuração foi instalado, caso contrário, é bastante básico. Cliquei nas propriedades do arquivo EXE e encontrei 10.50.1600.1, mas não encontrei nenhum lugar que indique se é Express, Dev, STN, ENT, etc.
Se eu tivesse que adivinhar, esta é uma edição expressa, mas eu queria saber se há um sinal óbvio.
Atualização: @Bob - O arquivo me diz o que eu sei, não a edição.
@valo - recebo o seguinte erro quando executo esse comando e verifiquei se os pipes nomeados estavam ativados:
HResult 0x35, Nível 16, Estado 1 Provedor de Pipes Nomeados: Não foi possível abrir uma conexão com o SQL Server [53]. Sqlcmd: Erro: Microsoft SQL Server Native Client 10.0: Ocorreu um erro relacionado à rede ou específico da instância ao estabelecer uma conexão com o SQL Server. O servidor não foi > encontrado ou não está acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. Para obter mais informações, consulte os Manuais Online do SQL Server. Sqlcmd: Erro: Microsoft SQL Server Native Client 10.0: Tempo limite de logon expirado.
@thomas - Eu notei o nome da unidade de manutenção de estoque antes de fazer a pergunta, mas isso parecia muito fácil, acho que minha suspeita inicial estava correta.
Você pode tentar a ferramenta de linha de comando:
Se o serviço do SQL Server estiver em execução (o que, com base na sua descrição, está), verifique o log de erros do SQL Server. Você não precisa do SSMS instalado para fazer isso, pois é apenas um arquivo de texto. O local do arquivo pode variar dependendo de como ele foi instalado, mas os Manuais Online mostram o local padrão aqui .
A primeira entrada no log deve conter as informações de versão/edição.
Edit: Apesar do comentário na pergunta acima, isso certamente informa a edição:
Isso pode ser feito através do WMI (acessado pelo PowerShell no meu exemplo abaixo). Tudo o que estou fazendo é olhar para uma propriedade ("SKUNAME") do serviço SQL Server, através da
SqlServiceAdvancedProperty
classe. Observe que existem algumas variáveis específicas do ambiente que precisariam ser configuradas adequadamente na parte superior do código.Da mesma forma, essas mesmas informações podem ser encontradas diretamente na ferramenta SQL Server Configuration Manager. Depois de abri-lo, clique com o botão direito do mouse no serviço do SQL Server e vá em Propriedades . Em seguida, clique na guia Avançado e observe a chave Nome da unidade de manutenção de estoque . Lá você encontrará qual edição você está usando.
Resposta rápida
Basta executar o seguinte:
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:
SELECT @@VERSION;
, não é uma opção)?Exemplo 1
Se você tiver apenas uma instância instalada, não precisará usar o
-s
switch:Devoluções:
Exemplo 2
Se você tiver várias instâncias instaladas na máquina, também precisará usar o
-s
switch para especificar em qual instância você está interessado, caso contrário, ele pode misturar informações de versão:Devoluções:
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 ) tem uma opção de linha de comando / sinalizador / parâmetro / opção / dealy-ma-bob que exibirá 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:
{ Exemplos do SQL Server mostrados acima }
O utilitário de linha de comando SQLCMD.EXE, por outro lado, usa o
-v
switch para passar valores de variáveis para o script SQL, portanto, ele exibe apenas informações de versão em sua exibição de informações gerais:O NotePad, no entanto, possui apenas um conjunto muito limitado de opções de linha de comando e nenhuma delas exibe informações de versão.
Métodos alternativos e sem complicações:
Verifique o registro:
Chave: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\{VersionNumber}\Tools\Setup
Name: Edition
Se você souber o número da versão (por exemplo, SQL Server 2012 = 110, SQL Server 2014 = 120, etc), poderá a edição especificamente executando o seguinte em um prompt de comando:
Retorna uma entrada semelhante à seguinte:
Se você quiser ver a Edição para o que quer que seja instalado, execute o seguinte em um prompt de comando:
Retorna uma ou mais entradas semelhantes às mostradas acima e as seguintes:
Verifique o log de instalação:
C:\Program Files\Microsoft SQL Server\{SQL Server Version: 110, 120, etc}\Setup Bootstrap\Log\{date_time}\Detail.txt
Para a string "IsExpressSku":
(03) 2014-09-05 16:53:44 SQLEngine: --EffectiveProperties: IsExpressSku = True