AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 67985
Accepted
AKDiscer
AKDiscer
Asked: 2014-06-11 08:57:23 +0800 CST2014-06-11 08:57:23 +0800 CST 2014-06-11 08:57:23 +0800 CST

Como você encontra a versão/edição do SQL Server sem o SSMS instalado?

  • 772

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.

sql-server
  • 4 4 respostas
  • 51277 Views

4 respostas

  • Voted
  1. valo
    2014-06-11T11:18:18+08:002014-06-11T11:18:18+08:00

    Você pode tentar a ferramenta de linha de comando:

    C:\>sqlcmd -S [SERVER] -d [DB_NAME] -E -Q "SELECT @@VERSION"
    
    • 23
  2. Bob Pusateri
    2014-06-11T09:02:48+08:002014-06-11T09:02:48+08:00

    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:

    2014-06-08 00:05:00.050 spid158      Microsoft SQL Server 2012 (SP1) - 11.0.3381.0 (X64) 
    
    Aug 23 2013 20:08:13 
    
    Copyright (c) Microsoft Corporation
    
    Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
    
    • 19
  3. Best Answer
    Thomas Stringer
    2014-06-11T09:05:26+08:002014-06-11T09:05:26+08:00

    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 SqlServiceAdvancedPropertyclasse. Observe que existem algumas variáveis ​​específicas do ambiente que precisariam ser configuradas adequadamente na parte superior do código.

    $ComputerName = "YourComputerName"
    $ServiceName = 'YourEngineServiceName'
    $PropertyName = "SKUNAME"
    
    # retrieve the most current version of the ComputerManagement namespace
    #
    $ComputerManagementNamespace =
        (Get-WmiObject -ComputerName $ComputerName -Namespace "root\microsoft\sqlserver" -Class "__NAMESPACE" |
            Where-Object {$_.Name -like "ComputerManagement*"} |
            Select-Object Name |
            Sort-Object Name -Descending |
            Select-Object -First 1).Name
     
    if ($ComputerManagementNamespace -eq $null) {
        Write-Error "ComputerManagement namespace not found"
    }
    else {
        $ComputerManagementNamespace = "root\microsoft\sqlserver\" + $ComputerManagementNamespace
    } 
    
    # get the property and its value
    #
    Get-WmiObject -ComputerName $ComputerName -Namespace $ComputerManagementNamespace -Class "SqlServiceAdvancedProperty" |
        Where-Object {
            $_.ServiceName -eq $ServiceName -and
            $_.PropertyName -eq $PropertyName
        } |
        Select-Object @{Name = "ComputerName"; Expression = { $ComputerName }},
            ServiceName,
            @{Name = "PropertyValue"; Expression = {
                if ($_.PropertyValueType -eq 0) {
                    $_.PropertyStrValue
                }
                else {
                    $_.PropertyNumValue
                }
            }}
    

    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.

    • 19
  4. Solomon Rutzky
    2015-08-02T08:28:15+08:002015-08-02T08:28:15+08:00

    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 quer escrever um programa (por exemplo, PowerShell)?
    • as Ferramentas Cliente não foram instaladas (necessário para usar SQLCMD.EXE)?
    • Não há nenhum 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 instância instalada, não precisará usar o -sswitch:

    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 o -sswitch para especificar em qual instância você está interessado, caso contrário, ele pode misturar informações de 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 ) 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:

    • [nada / nada]
    • -
    • --
    • /

    E, novamente, dependendo do programa em si, a opção de linha de comando será uma das seguintes:

    • Mais comum:
      • v
      • versão
    • Às vezes incluído nas informações gerais de ajuda:
      • ?
      • h
      • ajuda

    { Exemplos do SQL Server mostrados acima }

    O utilitário de linha de comando SQLCMD.EXE, por outro lado, usa o -vswitch 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:

    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 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:

        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ê quiser ver a Edição para o que quer que seja 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:\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

    • 13

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve