25

Ich habe kürzlich SQL Server installieren und eine Datenbank zu 2 Laptops wiederherstellen, fand die erste mir ein paar Tage, um herauszufinden, in der Sekunde, die ich immer noch kämpfe.SQL Server Connection Strings - Punkt ("") oder "(local)" oder "(localdb)"

Auf beiden war ich immer diesen Fehler hier:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Ich bin immer noch auf dem zweiten zu bekommen.

habe ich eine Menge Forschung und folgten alle aufgeführten Schritte auf Stackoverflow und andere Websites wie SQL Server sicherzustellen, hat TCP und Named Pipes ausgeführt wird, um sicherzustellen, dass SQL Server Remote-Verbindungen wurde erlaubt, und alle anderen Schritte zur Problembehandlung konnte ich finden .

Am Ende entdecken ich, dass ich nur falsch auf dem ersten Laptop die Verbindungszeichenfolge eintreten. Ich habe versucht, (localdb)\MSSQLSERVER2012 (oder so ähnlich) zu verwenden, wie es auf so vielen Seiten zu tun ist. Es fing an zu arbeiten, als ich .\MSSQLSERVER2012 verwendete. Ich dachte, sie würden alle auf denselben Ort zeigen, aber offensichtlich nicht.

Ich mag wirklich dieses Problem wieder zu vermeiden, und herauszufinden, wie mein zweiter Laptop einrichten zu bekommen. Wie kann ich wissen, ob ich .\SQLSERVER2012 verwenden soll, (local)\SQLSERVER2012, (localdb)\SQLSERVER2012, etc? Gibt es eine einfache Möglichkeit, dies mit einem Befehlszeilenprogramm wie SqlLocalDb herauszufinden? Und wie ist das überhaupt aufgebaut?

Antwort

40

. und (local) und YourMachineName sind alle gleichwertig und beziehen sich auf Ihre eigene Maschine.

(LocalDB)\instance ist SQL Server 2012 Express nur.

Die anderen Teile sind je nachdem, wie Sie installieren - wenn Sie mit einem Instanznamen installieren - dann müssen Sie diese Instanz Namen buchstabieren (SQL Server Express verwendet standardmäßig den SQLEXPRESS Instanznamen, während andere Ausgaben von SQL Server versucht, die Standardinstanz ohne einen speziellen Namen zu verwenden).

Also für einen "normalen" SQL Server mit allen Standard installierten Optionen auf dem lokalen Computer, verwenden

. or (local)  or   YourMachineName 

Für SQL Server Express mit allen Standardeinstellungen installiert haben, verwenden

.\SQLEXPRESS or (local)\SQLEXPRESS  or   YourMachineName\SQLEXPRESS 

Wenn Sie sich den SQL Server-Konfigurationsmanager anschauen (starten Sie ihn über das Startmenü), sehen Sie:

enter image description here

Wenn der SQL Server Eintrag liest (MSSQLSERVER) das ist dann, dass Standardinstanz (ohne Namen) - sonst würden Sie die Instanznamen in Klammern

+3

Die ich auf Ihre Antwort würde nur hinzufügen, denken zu sehen ist, dass LocalDB in sein muß Klammern. –

+0

@PaulSpangle: Spot auf - danke! Beseitigt wird den Tippfehler –

+0

Es ist nicht möglich, die Instanznamen zu ändern, aber es ist möglich, es ist TCP/IP-Port zu ändern, so (.) Oder (local) usw. verweist noch auf diese Instanz. Einzelheiten dazu finden Sie diese Antwort http://stackoverflow.com/a/17281278/1184296 – dizarter

Verwandte Themen