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.

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)


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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.