Come creare un alias per un'istanza di SQL Server denominata


8

Sul mio computer sviluppatore ho un'istanza di SQL Server denominata developer_2005 . Nei file di impostazione delle risorse di un'applicazione C # che stiamo creando, il nome dell'istanza è impostato su foobar (non proprio, ma solo come esempio). Quindi, quando eseguo l'applicazione (in debug o realease), tenta di connettersi a un SQL Server su localhost, chiamato foobar .

Mi chiedo se è possibile creare un alias o qualcosa del genere, in modo che l'applicazione trovi effettivamente un SQL Server su localhost chiamato foobar , ma in realtà si sta connettendo all'istanza denominata developer_2005 .

La stringa di connessione nel file di configurazione dell'applicazione è Origine dati = localhost \ foobar; Catalogo iniziale = barfoo; Sicurezza integrata = True con il nome del provider System.Data.SqlClient . Se cambio localhost \ foobar in localhost \ developer_2005, l'applicazione può connettersi come dovrebbe. Come posso creare un alias in modo da non dover cambiare la stringa nel file?

Ho provato, in SQL Server Management Studio, a creare una registrazione del server con il nome del server registrato "localhost \ developer", ma questo non sembrava fare nulla di buono. Non sono nemmeno sicuro di cosa abbia fatto davvero ... Ma poi ho scoperto SQL Server Configuration Manager \ SQL Native Client COnfiguration \ Aliases. E suppongo che sia qui che sta la soluzione. Ma non riesco proprio a capire come aggiungerne uno nuovo ... Quando ne creo uno nuovo, devo fornire Alias ​​Nome, Numero porta, Protocollo e Server e non ho davvero idea di cosa inserire entrambi loro.

Risposte:


6

Alias ​​name: foobar (il nome che vorresti usare)

Nome server: il nome effettivo del computer o l'indirizzo IP (non localhost o 127.0.0.1)

Protocollo: TCP / IP

Porta: quella predefinita (1433)

Assicurarsi che il protocollo TCP / IP sia abilitato (disabilitato per impostazione predefinita)

Modifica la stringa di connessione per utilizzare il tuo nuovo alias (Origine dati = foobar)


Il nome del server, localhost , è corretto. È il nome dell'istanza denominata di cui ho bisogno per creare un alias.
Svish,

Quindi dovresti usare localhost \ nomeistanza come nome del server.
Massimo,

che dire del nome alias? Dovrei usare localhost \ developer_2005 come nome del server e localhost \ foobar come alias? Funzionerà?
Svish,

Ho controllato meglio ... sembra che tu possa davvero farlo. Almeno in SQL Server 2008 (non so se funzionerà nel 2005).
Massimo,

Ho modificato la mia risposta, provaci.
Massimo,

1

Hai ragione, quello che devi fare è definire un nuovo alias nella configurazione di Native Client.

  • Nome alias: l'alias che si desidera creare
  • Nome server: il nome effettivo del server
  • Protocollo: TCP / IP
  • Porta: quella predefinita (1433)

Prova questo:

  • Nome alias: localhost \ foobar
  • Nome server: localhost \ developer_2005
  • Protocollo: TCP / IP
  • Porto: 1433

Ed è qui che sono. Ma cosa metto in quei campi? Non capisco bene ...
Svish,

La stringa di connessione nel file di configurazione è Origine dati = localhost \ foobar; Catalogo iniziale = barfoo; Sicurezza integrata = True con nome provider System.Data.SqlClient . Perché si connetta correttamente devo cambiare localhost \ foobar in localhost \ developer_2005 . Come posso creare un alias in modo da non doverlo fare?
Svish,

Questo non può essere fatto; la tua stringa di connessione è alla ricerca di un'istanza denominata chiamata foobar , gli alias possono essere usati solo come nomi di livello superiore, non come sono stati nominati istanze stesse.
Massimo

Quindi non c'è modo di risolverlo, se non cambiare la stringa di connessione nell'applicazione?
Svish,

Ho controllato meglio ... sembra che tu possa davvero farlo. Almeno in SQL Server 2008 (non so se funzionerà nel 2005).
Massimo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.