Estou tentando determinar quais instâncias do sql server / sql express eu instalei (manual ou programaticamente), mas todos os exemplos estão me dizendo para executar uma consulta SQL para determinar isso, considerando que já estou conectado a uma instância específica .
224
Respostas:
Em uma linha de comando:
ou
(Nota: deve ser L maiúsculo)
Isso listará todos os servidores sql instalados na sua rede. Existem opções de configuração que você pode definir para impedir que um SQL Server seja exibido na lista. Para fazer isso...
Na linha de comando:
Na lista de protocolos ativados, selecione 'TCP / IP' e clique em propriedades. Há uma caixa de seleção para 'Ocultar servidor'.
fonte
C:\> sqllocaldb i
Você pode consultar esse valor do registro para obter a versão do SQL diretamente:
Como alternativa, você pode consultar o nome da instância e, em seguida, usar o sqlcmd com o nome da instância que deseja:
Para ver o nome da sua instância:
Em seguida, execute o seguinte:
Se você estiver usando C ++, poderá usar esse código para obter as informações do registro.
fonte
Todas as instâncias instaladas devem aparecer no snap-in de serviços no Microsoft Management Console. Para obter os nomes das instâncias, vá para Iniciar | Executar | digite Services.msc e procure todas as entradas com "Sql Server (Instance Name)".
fonte
Get-Service | ?{ $_.Name -like "MSSQL*" }
- Consulta T-SQL para encontrar a lista de instâncias instaladas em uma máquina
fonte
sa
não é?Eu sei que esse tópico é um pouco antigo, mas me deparei com ele antes de encontrar a resposta que estava procurando e pensei em compartilhar. Se você estiver usando o SQLExpress (ou localdb), há uma maneira mais simples de encontrar os nomes de suas instâncias. Em uma linha de comando, digite:
Isso listará os nomes de instância que você instalou localmente. Portanto, o nome completo do servidor deve incluir (localdb) \ na frente do nome da instância para se conectar. Além disso, o sqllocaldb permite criar novas instâncias ou excluí-las e configurá-las. Consulte: Utilitário SqlLocalDB .
fonte
Se você quiser apenas ver o que está instalado na máquina em que está conectado no momento, acho que o processo manual mais direto é apenas abrir o SQL Server Configuration Manager (no menu Iniciar), que exibe todos os Serviços SQL (e apenas serviços SQL) nesse hardware (em execução ou não). Isso pressupõe o SQL Server 2005 ou superior; A recomendação do dotnetengineer de usar o Console de Gerenciamento de Serviços mostrará todos os serviços e deve estar sempre disponível (se você estiver executando versões anteriores do SQL Server, por exemplo).
Se você estiver procurando por um processo mais amplo de descoberta, no entanto, considere ferramentas de terceiros, como SQLRecon e SQLPing, que verificarão sua rede e criarão um relatório de todas as instâncias do Serviço SQL encontradas em qualquer servidor ao qual eles tenham acesso. Já faz um tempo desde que eu usei ferramentas como essa, mas fiquei surpreso com o que elas encontraram (a saber, algumas instâncias que eu nem sabia que existiam). YMMV. Você pode procurar no Google por detalhes, mas acredito que esta página possui os downloads relevantes: http://www.sqlsecurity.com/Tools/FreeTools/tabid/65/Default.aspx
fonte
O SQL Server permite que os aplicativos encontrem instâncias do SQL Server na rede atual. A classe SqlDataSourceEnumerator expõe essas informações ao desenvolvedor do aplicativo, fornecendo um DataTable contendo informações sobre todos os servidores visíveis. Esta tabela retornada contém uma lista de instâncias do servidor disponíveis na rede que correspondem à lista fornecida quando um usuário tenta criar uma nova conexão e expande a lista suspensa que contém todos os servidores disponíveis na caixa de diálogo Propriedades da Conexão. Os resultados exibidos nem sempre estão completos. Para recuperar a tabela que contém informações sobre as instâncias disponíveis do SQL Server, primeiro você deve recuperar um enumerador usando a propriedade Instância compartilhada / estática:
do msdn http://msdn.microsoft.com/en-us/library/a6t1z9x2(v=vs.80).aspx
fonte
SqlDataSourceEnumerator
ainda não foi implementado, mas está na lista a ser adicionada de acordo com o problema do GitHub .Serviço de Navegador do SQL Server http://msdn.microsoft.com/en-us/library/ms181087.aspx
fonte
Se você estiver interessado em determinar isso em um script, tente o seguinte:
Nota: grep faz parte das ferramentas do gnuwin32
fonte
findstr
vez de fazergrep
isso.Na linha de comando do Windows, digite:
Onde "server_name" é o nome de qualquer servidor remoto no qual você deseja exibir as instâncias SQL.
Isso requer permissões suficientes, é claro.
fonte
Esta consulta deve fornecer o nome do servidor e o nome da instância:
fonte
Eu tive o mesmo problema. O comando "osql -L" exibia apenas uma lista de servidores, mas sem nomes de instância (apenas a instância do meu servidor SQL local era exibida). Com o Wireshark, o sqlbrowser.exe (que pode ser encontrado na pasta compartilhada da sua instalação do SQL), encontrei uma solução para o meu problema.
A instância local é resolvida pela entrada do Registro. As instâncias remotas são resolvidas pela transmissão UDP (porta 1434) e SMB. Use "sqlbrowser.exe -c" para listar as solicitações.
Minha configuração usa 1 adaptadores de rede físicos e 3 virtuais. Se eu usei o comando "osql -L", o sqlbrowser exibiu uma solicitação de um dos adaptadores virtuais (que está em outro segmento de rede), em vez do físico. o osql seleciona o avaliador por sua métrica. Você pode ver a métrica com o comando "route print". Para minha configuração, a tabela de roteamento mostrou uma métrica mais baixa para o adaptador virtual do que para o físico. Então, alterei a métrica da interface nas propriedades da rede, desmarcando a métrica automática nas configurações avançadas da rede. o osql agora usa o adaptador físico.
fonte
Mais uma opção seria executar o relatório de descoberta SQLSERVER ... vá para a mídia de instalação do sqlserver e clique duas vezes em setup.exe
e na próxima tela, vá para ferramentas e clique em relatório de descoberta, como mostrado abaixo
Isso mostrará todas as instâncias presentes, além de todos os recursos ... abaixo é um instantâneo no meu pc
fonte
Acabei de instalar o Sql server 2008, mas não consegui conectar-me a nenhuma instância do banco de dados. Os comandos publicados pelo @G Mastros não listaram nenhuma instância ativa.
Então, procurei nos serviços e descobri que o agente do servidor SQL estava desativado. Corrigi-o, definindo-o como automático e iniciando-o.
fonte
Eu tive esse mesmo problema quando avaliava mais de 100 servidores, tinha um script escrito em C # para procurar os nomes dos serviços que consistem em SQL. Quando instâncias instaladas no servidor, o SQL Server adiciona um serviço para cada instância com o nome do serviço. Pode variar para versões diferentes, como 2000 a 2008, mas com certeza existe um serviço com o nome da instância.
Pego o nome do serviço e obtenho o nome da instância no nome do serviço. Aqui está o código de exemplo usado com o resultado da consulta WMI:
fonte
Aqui está um método simples: vá para Iniciar, Programas, Microsoft SQL Server 2005, Ferramentas de configuração, SQL Server Configuration Manager e SQL Server 2005 Network Configuration e Aqui você pode localizar toda a instância instalada em sua máquina.
fonte
Eu sei que é um post antigo, mas encontrei uma boa solução com o PoweShell, onde você pode encontrar instâncias SQL instaladas em uma máquina local ou remota, incluindo a versão e também estender, obter outras propriedades.
fonte
Os comandos
OSQL -L
eSQLCMD -L
mostrarão todas as instâncias na rede .Se você deseja ter uma lista de todas as instâncias no servidor e não deseja executar scripts ou programação, faça o seguinte:
sqlsrvr.exe
imagensAs instâncias devem estar listadas na coluna "Nome do usuário" como
MSSQL$INSTANCE_NAME
.E passei a pensar que o servidor ruim estava executando 63 instâncias e percebi que estava executando três (das quais uma estava se comportando como um valentão total com a carga da CPU ...)
fonte
Obterá as instâncias da consulta de registro do servidor SQL "HKLM \ Software \ Microsoft \ Microsoft SQL Server \ Nomes de Instância \ SQL"
ou Use SQLCMD -L
fonte
Se você estiver no SSMS, poderá achar mais fácil usar:
fonte