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.