Como criar um alias para uma instância nomeada do SQL Server


8

No meu computador de desenvolvedor, tenho uma instância do SQL Server chamada developer_2005 . Nos arquivos de configuração de recursos de um aplicativo C # que estamos criando, o nome da instância é definido como foobar (não realmente, mas apenas como exemplo). Portanto, quando executo o aplicativo (em depuração ou versão), ele tenta se conectar a um SQL Server no host local, chamado foobar .

Gostaria de saber se é possível criar um alias ou algo parecido, para que o aplicativo realmente encontre um SQL Server no host local chamado foobar , mas na verdade esteja se conectando à instância chamada developer_2005 .

A cadeia de conexão no arquivo de configuração do aplicativo é Fonte de dados = localhost \ foobar; Catálogo inicial = barfoo; Segurança integrada = True com o nome do provedor System.Data.SqlClient . Se eu alterar localhost \ foobar para localhost \ developer_2005 , o aplicativo poderá se conectar como deveria. Como posso criar um alias para não precisar alterar a string no arquivo?

Tentei, no SQL Server Management Studio, criar um registro de servidor com o nome de servidor registrado "localhost \ developer", mas isso não pareceu funcionar. Nem sei ao certo o que isso realmente fez ... Mas descobri o SQL Server Configuration Manager \ SQL Native Client COnfiguration \ Aliases. E eu meio que assumo que é aí que reside a solução. Mas não consigo descobrir como adicionar um novo ... Ao criar um novo, tenho que fornecer o nome do alias, a porta não, o protocolo e o servidor, e não tenho idéia do que colocar qualquer um deles.

Respostas:


6

Nome alternativo: foobar (o nome que você gostaria de usar)

Nome do servidor: o nome real do seu computador ou o endereço IP (não localhost ou 127.0.0.1)

Protocolo: TCP / IP

Porta: a padrão (1433)

Verifique se o protocolo de protocolo TCP / IP está ativado (desativado por padrão)

Altere sua cadeia de conexão para usar seu novo alias (fonte de dados = foobar)


O nome do servidor localhost está correto. É o nome da instância nomeada para a qual eu preciso criar um alias.
Svish

Então você deve usar localhost \ instancename como o nome do servidor.
Massimo

e o nome alternativo? Devo usar localhost \ developer_2005 como nome do servidor e localhost \ foobar como alias? Isso vai funcionar?
Svish

Eu chequei melhor ... parece que você realmente pode fazer isso. Pelo menos no SQL Server 2008 (não sei se funcionará em 2005).
Massimo

Eu editei minha resposta, tente isso.
Massimo

1

Você está certo, o que você precisa fazer é definir um novo alias na configuração do Native Client.

  • Nome do alias: o alias que você deseja criar
  • Nome do servidor: o nome real do servidor
  • Protocolo: TCP / IP
  • Porta: a padrão (1433)

Tente o seguinte:

  • Nome alternativo: localhost \ foobar
  • Nome do servidor: localhost \ developer_2005
  • Protocolo: TCP / IP
  • Porto: 1433

E é aí que eu estou. Mas o que eu coloco nesses campos? Eu não bastante obtê-lo ...
Svish

A cadeia de conexão no arquivo de configuração é Fonte de dados = localhost \ foobar; Catálogo inicial = barfoo; Segurança integrada = True com o nome do provedor System.Data.SqlClient . Para que ele se conecte corretamente, devo alterar localhost \ foobar para localhost \ developer_2005 . Como posso criar um alias para não precisar fazer isso?
Svish

Isso não pode ser feito; Se sua cadeia de conexão estiver procurando por uma instância nomeada chamada foobar , os aliases só podem ser usados ​​como nomes de nível superior, e não como eles próprios foram nomeados instâncias.
Massimo

Portanto, não há como resolver isso, além de alterar a cadeia de conexão no aplicativo?
Svish

Eu verifiquei melhor ... parece que você realmente pode fazer isso. Pelo menos no SQL Server 2008 (não sei se funcionará em 2005).
Massimo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.