2009-07-09 8 views
0

In .NET können Sie eine SQL Express-Datenbank öffnen, indem Sie einfach die MDF-Datenbankdatei in die Verbindungszeichenfolge einfügen (dh, Sie müssen keine Serversoftware installiert haben, sie wird einfach an die MDF-Datei angehängt).Wenn Sie eine SQL Express DB über eine Verbindungszeichenfolge anfügen, handelt es sich um eine exklusive Sperre?

Wenn eine Anwendung dies tut, erhält es eine exklusive Sperre für die Datenbankdatei? Oder kann eine zweite Anwendung auf dieselbe Weise an die MDF-Datei anhängen und sie öffnen und die Datenbank abfragen, während das Programm Nr. 1 sie verwendet?

Antwort

1

Sie haben Recht, es kann immer nur eine einzige Verbindung zum MDF geöffnet sein.

Das kann sehr ärgerlich werden, wenn Sie die Datenbank über Ihren Server-Explorer in Visual Studio öffnen und dann versuchen, Ihre Anwendung auszuführen.

Ich habe mich dabei ertappt, dass ich zu oft zähle, um zu zählen, und ich schließe immer ausnahmslos am Ende nur das Hinzufügen der MDF zu meinem SQL-Server-Instanz.

+0

Man - das ist scheiße. Scheint es wäre ein Schmerz, diese Funktion überhaupt zu benutzen. Ich frage mich, ob die meisten Leute einfach den SQL-Express-Server installieren, was meiner Meinung nach eine bessere Kontrolle über Dinge wie Jobs, Backups usw. geben würde. –

+0

@Sam Sie treffen den Nagel auf den Kopf. Ich benutze im Grunde nie den Dateipfad in der Verbindungszeichenfolge. Es ist viel praktischer, die Datenbank einfach an eine SQL Express-Instanz anzuhängen. Und da sql express kostenlos ist, nimmt es nur die Zeit, es zu installieren, die nicht so lange ist. – Joseph

+0

Wenn ich in einer Situation bin, in der eine Datenbank auf diese Weise von Programm 1 geöffnet wird, frage ich mich, ob es funktioniert: 1. Kopieren Sie die angehängte Datenbank in eine andere Datei (DB2.mdf) 2. Öffnen Sie nun die kopierte Datenbank mit Programm 2 Normalerweise funktioniert eine Kopie auf geöffnete Objekte wie ... hmmm ... –

Verwandte Themen