Olá,
Mais um fast-post (postagem rapidona, tradução livre) pra ilustrar um cenário bem comum para quem usa SQL Server eventualmente: o conceito de instâncias nomeadas e instâncias padrão (default). Peço que tenham paciência pois irei partir do começo, e quando digo “começo”, eu falo da parte de instalação do SQL Server.
O processo de instalação é relativamente simples (quer aprender como faz utilizando as melhores práticas?) e não será detalhado aqui. Recomendo este vídeo no MVA especialmente pois ilustra uma instalação completa.
A tela que define a configuração de sua instância é essa aqui:
Assumo que você já conhece o conceito de instância do SQL Server e por isso vamos abordar três tópicos:
- Instância padrão
- Instância nomeada
- SQL Server Express
Instância padrão
A lei suprema do universo é que, em determinada máquina, só pode ter uma e apenas uma (e apenas uma e apenas uma e apenas u…) instância padrão (Default Instance). Jamais, em hipótese alguma, você poderá ter mais de uma instância padrão na mesma máquina, mesmo se você instalar várias instâncias de versões do SQL Server diferentes.
Por exemplo, se você instalou uma instância padrão do SQL Server 2008 R2 em sua máquina, e deseja instalar uma instância do SQL Server 2012 pra testes, você não pode instalar uma instância padrão, a mesma PRECISA ser nomeada.
Depois de instalado, se o serviço do SQL Server estiver online (pode ser conferido no SQL Server Configuration Manager ou em services.msc do Windows), como logamos?
Assim:
Opções para logar em uma instância padrão:
- (local) – Como ilustrado na imagem acima;
- . – Também conhecido como ponto. Puro unix-pattern 🙂
- NOMEDASUAMAQUINA – A sua máquina só pode possuir uma instância padrão, logo,
- MSSQLSERVER – Aponta também para a instância padrão. Note que no ato da instalação, quando se seleciona default, esse é o nome que aparece (Instância padrão) .
Instância nomeada
Enquanto você só pode ter uma instância padrão em uma máquina, poderá ter N instâncias nomeadas. Olha como é criada uma instância nomeada:
E como logamos em uma instância nomeada?
Ou seja: NomeDaMaquina\NomeInstancia
E o que tem haver o SQL Server Express?
É o campeão em frustar recém-chegados ao SQL Server 🙂
O motivo é a edição EXPRESS, que é bastante baixada seja por desenvolvedores ou para quem está pegando o jeito com o SQL Server, obrigatoriamente é nomeada.
E como logar? Usando um dos nomes abaixo:
- NomeDaSuaMaquina\SQLEXPRESS;
- .\SQLEXPRESS
Porque achei interessante mencionar o SQL Express? Porque um amigo meu topou com essa dificuldade e talvez outra pessoa também tope.
E qual a diferença entre instâncias padrão e nomeada?
Basicamente configurações de conectividade (leia-se: nome do servidor e porta).
Porta pode se tornar um fator problemático (sem devido conhecimento) se você estiver conectando em uma instância nomeada e o SQL Server Browser não está habilitado nela. Mas isso é assunto pra outro post 🙂
Referência: http://technet.microsoft.com/en-us/library/ms165614(v=sql.90).aspx
[]’s
Renato muito bom o post sobre as diferenças entre as instâncias do SQL Server. Só para acrescentar, existe também uma quarta forma de logar na instância default que é através do endereço loopback, ou conhecido como localhost, com o IPv4 – 127.0.0.1. =p
Obrigado pela colaboração, Patrocínio!
Parabéns pela objetividade! Me ajudou imensamente.
Fico feliz que tenha te ajudado!
Sua explicação foi ótima. Tenho uma dúvida. Criei uma aplicação pequena que conecta a um SQL Server 2008 express. No meu servidor, o databasename é “srv-asm01\gwolap” (instância nomeada). O servidor onde essa aplicação vai rodar, possui no databasename “servidordba” (Instância padrão?). Apesar do responsável me dizer que o SQLServer 2008 dele é o express, vendo essa sua explicação, fiquei na dúvida..
Pra piorar, criei um arquivo “.ini” para gerenciar a conexão. No meu fica assim:
Server=srv-asm01\gwolap
Databasename=gwolap
User=sa
Pass=blablabla
No início da aplicação, eu faço a leitura do “;ini” e preencho os parâmetros de conexão. No meu PC acessando meu servidor, funciona normalmente.
No dele fica assim:
Server=servidordba
Databasename=gwolap
User=bla
Pass=blablabla
No PC dele acessando o servidor dele (com os parâmentros de conexão ajustados) dá erro de conexão com o servidor.
Alguma luz?
Obrigado.
Qual a mensagem do erro de conexão com o servidor?
É bom confirmar com certeza se a instância da aplicação realmente é express, porque se for, neste .ini, o server seria servidordba\sqlexpress.