Versuchen zu befestigen mdf-Datei localDb Fehler mindestens eine Datei erforderlich ist
TITEL: Microsoft SQL Server Management Studio
Anfügen der Datenbank fehlgeschlagen für Server '(localdb)\mssqllocaldb'. (Microsoft.SqlServer.Smo)
ZUSÄTZLICHE INFORMATIONEN:
Mindestens eine Datei benötigt wird, die für die Datenbank Anfügen. (Microsoft.SqlServer.Smo)
Ich versuche, schließen Sie diesen .mdf
Datenbank-Datei auf meinem LocalDb-Instanz. Es ist gut, wenn ich kann, um es zu SQL-Server zu. Ich habe .ldf
- Datei im gleichen Verzeichnis
- Bewegen Sie die LDF-Datei für ein anderes Verzeichnis und dann verknüpfen Sie die MDF-Datei nur, oder versuchen Sie, schließen Sie beide Dateien
- kein Glück, ich kann Sie nicht Anhängen .die ldf-Datei weder ändern in ein anderes Verzeichnis hilft.
- Haben Sie versucht, starten Sie SQL management mit admin-rechten?
- Ja, ich habe versucht, dass auch geprüft werden persmissions auf Ordner meine Datei ist @iceDragon
- Ist aspnet-Qb.mdf seinem original-Dateinamen? Ich nur löste dieses Problem für mich durch ändern der Dateinamen wieder Ihren ursprünglichen Namen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zur Vervollständigung Willen - Jims Kommentar löst (die Hälfte) der problem-und bekommt Sie.
Die andere "Hälfte" des Problems ist - was, wenn Sie letztlich möchten, benennen Sie die physikalischen Datenbank-Datei? Die Antwort ist in diesem CodeProject post.
Schritte:
ALTER DATABASE
um den neuen körperliche Dateinamen (der Daten-und Protokolldatei)Gewann erst wirksam, wenn SQL Server neu gestartet wird oder die Datenbank offline und wieder online geschaltet
ALTER DATABASE [CurrentName] MODIFY FILE (NAME = 'CurrentName', FILENAME = '<Full-Path-Required>\NewDbName.mdf');
ALTER DATABASE [CurrentName] MODIFY FILE (NAME = 'CurrentName_log', FILENAME = '<Full-Path-Required>\NewDbName_log.ldf');
ALTER DATABASE
wieder neue logische Dateinamen (wieder -, Daten-und log-Dateien)sofort wirksam
ALTER DATABASE [CurrentName] MODIFY FILE (NAME = 'CurrentName', NEWNAME = 'NewDbName');
ALTER DATABASE [CurrentName] MODIFY FILE (NAME = 'CurrentName_log', NEWNAME = 'NewDbName_log');
Nehmen Sie offline und wieder online bringen oder starten Sie SQL Server neu
Take Offline
unterTasks
.Bring Online
unterTasks
.ALTER DATABASE [CurrentName] SET OFFLINE WITH ROLLBACK IMMEDIATE;
(legt es auf offline und trennt alle clients)ALTER DATABASE [CurrentName] SET ONLINE;
Vollständige code:
Wenn Sie nicht an den vorherigen Dateinamen, öffnen Sie die .mdf-Datei in einem hex-editor und bei etwa offset 0x19D sehen Sie eine UTF-16 (2 byte/char) Zeichenkette, die dem Dateinamen
Musste ich verschieben/umbenennen DBs mehrmals. In Fall, dass Sie im selben Boot, hier ist ein Skript, das Variablen verwendet, um vermeiden Sie die Eingabe der neuen/alten Namen über und über.
Es verwendet die gleiche Logik von Jesse ' s Antwort, andere als die automatisch startet die DB wieder für Sie. Ich nehme an, Sie brauchen, um es wieder einzuschalten nach verschieben/umbenennen der physikalischen Dateien, also die Entfernung der Anweisung. Bitte äußern Sie sich, wenn diese Annahme falsch ist.
Jedoch, entsprechend dem logischen umbenennen in SSMS, müssen Sie noch
right click -> rename
. Das scheint das gleiche zu sein, ohne mit derEXECUTE
/REPLACE
Methode unten.Dies ist meine erste Antwort, entschuldigt, wenn es nicht von ausreichender Qualität.
Keiner von diesen Antworten waren schnell auf den Punkt Antworten, so dachte ich, ich möchte nur hinzufügen, dass meine Antwort darauf hinweisen, meine Erkenntnisse (basierend auf alle Beiträge hier)...
Die Situation:
Haben Sie eine Datenbank-Datei und eine log-Datei, nicht aber ein backup von Ihnen. Sie versuchen, legen Sie die Datenbank (mehr als wahrscheinlich, in einer Anstrengung zu erholen, die von einem server ging down).
Das Problem:
Haben Sie änderte den Namen der MDF-und LDF-Dateien auf etwas anderes als Sie ursprünglich waren. Sie müssen Sie umbenennen wieder zum ursprünglichen Namen, versuchen Sie dann zu BEFESTIGEN.
So ändern Sie den Namen der DB-Dateien (der einfache Weg):
machen wollen, BAK (backup) - Datei, indem Sie eine Sicherung der Datenbank.
FILES-Sektion (Links), mit denen Sie ändern die
Restore As
Datei-Namen für das, was Sie wollen, dass die MDF-und LDF-Dateien genannt werden.
wieder so, dass dieses mal die Sicherung mit der richtigen Datei-Namen
Sie wollen.
Befehlszeile stellte sich heraus, werden viel mehr zu vergeben mit der umbenannten Dateien. Beachten Sie, dass dies nicht ein Feuer-and-forget-script...ausführen jedes Teil getrennt, wobei die Aufmerksamkeit auf die Namen, die geändert werden müssen: