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.