So erstellen Sie einen Alias ​​für eine benannte SQL Server-Instanz

8

Auf meinem Entwicklercomputer befindet sich eine SQL Server-Instanz mit dem Namen developer_2005 . In den Ressourceneinstellungsdateien einer C # -Anwendung, die wir erstellen, wird der Instanzname auf foobar gesetzt (nicht wirklich, aber nur als Beispiel). Wenn ich die Anwendung ausführe (in Debug oder Realease), versucht sie, eine Verbindung zu einem SQL Server auf localhost mit dem Namen foobar herzustellen .

Ich frage mich, ob es möglich ist, einen Alias ​​oder ähnliches zu erstellen, damit die Anwendung tatsächlich einen SQL Server auf localhost mit dem Namen foobar findet , aber tatsächlich eine Verbindung zu der Instanz mit dem Namen developer_2005 herstellt .

Die Verbindungszeichenfolge in der Konfigurationsdatei der Anwendung lautet Data Source = localhost \ foobar; Initial Catalog = barfoo; Integrated Security = True mit dem Anbieternamen System.Data.SqlClient . Wenn ich localhost \ foobar in localhost \ developer_2005 ändere, kann die Anwendung eine Verbindung herstellen, wie sie sollte. Wie kann ich einen Alias ​​erstellen, damit ich die Zeichenfolge in der Datei nicht ändern muss?

Ich habe in SQL Server Management Studio versucht, eine Serverregistrierung mit dem registrierten Servernamen "localhost \ developer" zu erstellen, aber dies schien nichts zu nützen. Ich bin mir nicht einmal sicher, was das wirklich getan hat ... Aber dann habe ich SQL Server Configuration Manager \ SQL Native Client-Konfiguration \ Aliase entdeckt. Und ich gehe davon aus, dass hier die Lösung liegt. Aber ich kann nicht genau herausfinden, wie ich einen neuen hinzufügen soll ... Wenn ich einen neuen erstelle, muss ich den Aliasnamen, die Portnummer, das Protokoll und den Server angeben, und ich habe nicht wirklich eine Ahnung, was ich eingeben soll jeder von ihnen.

Svish
quelle

Antworten:

6

Aliasname: foobar (der Name, den Sie verwenden möchten)

Servername: Der tatsächliche Name Ihres Computers oder die IP-Adresse (nicht localhost oder 127.0.0.1).

Protokoll: TCP / IP

Port: der Standardport (1433)

Stellen Sie sicher, dass TCP / IP-Protokoll aktiviert ist (standardmäßig deaktiviert).

Ändern Sie Ihre Verbindungszeichenfolge, um Ihren neuen Alias ​​zu verwenden (Datenquelle = foobar)

Hakan Winther
quelle
Der Servername localhost ist korrekt. Dies ist der benannte Instanzname, für den ich einen Alias ​​erstellen muss.
Svish
Dann sollten Sie localhost \ instancename als Servernamen verwenden.
Massimo
Was ist mit dem Aliasnamen? Sollte ich localhost \ developer_2005 als Servernamen und localhost \ foobar als Alias ​​verwenden? Wird es funktionieren?
Svish
Ich habe besser nachgesehen ... sieht so aus, als ob du das tatsächlich kannst . Zumindest in SQL Server 2008 (weiß nicht, ob es 2005 funktionieren wird).
Massimo
Ich habe meine Antwort bearbeitet, versuche das.
Massimo
1

Sie haben Recht. Sie müssen lediglich einen neuen Alias ​​in der Native Client-Konfiguration definieren.

  • Aliasname: Der Alias, den Sie erstellen möchten
  • Servername: Der tatsächliche Servername
  • Protokoll: TCP / IP
  • Port: der Standardport (1433)

Versuche dies:

  • Aliasname: localhost \ foobar
  • Servername: localhost \ developer_2005
  • Protokoll: TCP / IP
  • Hafen: 1433
Massimo
quelle
Und dort bin ich. Aber was setze ich in diese Felder? Ich verstehe es nicht ganz ...
Svish
Die Verbindungszeichenfolge in der Konfigurationsdatei lautet Data Source = localhost \ foobar; Initial Catalog = barfoo; Integrated Security = True mit dem Anbieternamen System.Data.SqlClient . Damit die Verbindung korrekt hergestellt werden kann, muss localhost \ foobar in localhost \ developer_2005 geändert werden . Wie kann ich einen Alias ​​erstellen, damit ich das nicht tun muss?
Svish
Das geht nicht; Ihre Verbindungszeichenfolge sucht nach einer benannten Instanz namens foobar . Aliase können nur als Namen der obersten Ebene verwendet werden, nicht, da sie selbst als Instanzen bezeichnet wurden.
Massimo
Es gibt also keine andere Möglichkeit, dies zu lösen, als die Verbindungszeichenfolge in der Anwendung zu ändern.
Svish
Ich habe besser nachgesehen ... sieht so aus, als ob du das tatsächlich kannst. Zumindest in SQL Server 2008 (weiß nicht, ob es 2005 funktionieren wird).
Massimo