66

Jede SQL Server-Verbindungszeichenfolge den ich je sehen sieht das so etwas wie:Was ist der Anfangskatalog in einer SQL Server-Verbindungszeichenfolge?

Data Source=MyLocalSqlServerInstance;Initial Catalog=My Nifty Database; 
    Integrated Security=SSPI; 

Habe ich die Initial Catalog Einstellung müssen? (Anscheinend nicht, da die App, an der ich arbeite, ohne sie zu funktionieren scheint.)

Nun, was ist es dann?

+24

Hmmm, ich habe gerade festgestellt, dass meine App alle meine erstellten Tabellen in master abgelegt hat. Hoppla. Ich habe vielleicht gerade die Antwort auf meine Frage gelernt. –

Antwort

38

Wenn der Benutzer, der die Verbindungszeichenfolge ist, Zugriff auf mehr als eine Datenbank hat, müssen Sie die Datenbank angeben, mit der die Verbindungszeichenfolge hergestellt werden soll. Wenn Ihrem Benutzer nur eine Datenbank zur Verfügung steht, ist es richtig, dass es keine Rolle spielt. Es ist jedoch eine gute Übung, dies in Ihre Verbindungszeichenfolge einzufügen.

+7

Nicht ganz richtig. Die Anmeldung hat möglicherweise keine Berechtigungen für die Standarddatenbank. Daher müssen Sie den Datenbankkontext für die Verbindung ändern. – gbn

+0

Dies ist für das Entity Framework erforderlich, wenn Sie den Parameter -ConnectionStringName angeben, also auf jeden Fall gute Praxis, aber manchmal auch erforderlich! –

29

Dies ist die initial database der Datenquelle, wenn Sie eine Verbindung herstellen.

Edited für Klarheit:

Wenn Sie mehrere Datenbanken in SQL Server-Instanz haben, und Sie nicht möchten, dass die Standard-Datenbank verwenden, müssen Sie eine Möglichkeit, die Sie verwenden, um anzugeben werden.

+1

Der erste Teil ist korrekt. Der zweite Teil ist nicht korrekt. Wenn Sie das Konto erstellen, wird ihm eine Standarddatenbank zugewiesen, die verwendet wird, wenn der ursprüngliche Katalog nicht angegeben wird. Dies ist in der Regel Master (aus einem unbekannten Grund). – GrayWizardx

+0

Wenn ich "standardmäßig" sage, meine ich einfach, wenn Sie die Datenbank nicht in Ihren Objektnamen qualifizieren. Auf jeden Fall habe ich meine Antwort geklärt. –

8

Durch Festlegen eines ersten Katalogs können Sie die Datenbank festlegen, die Abfragen standardmäßig für diese Verbindung verwenden. Wenn Sie dies nicht für eine Verbindung zu einem Server festlegen, auf dem mehrere Datenbanken vorhanden sind, müssen Sie in vielen Fällen eine USE-Anweisung in jeder Abfrage angeben, um explizit anzugeben, in welcher Datenbank Sie die Abfrage ausführen möchten. Die Einstellung "Anfangskatalog" ist eine gute Möglichkeit, eine Standarddatenbank explizit anzugeben.

Verwandte Themen