Ich habe ein MS SQL Server 2008 Express-System, das eine Datenbank enthält, die ich (zu Testzwecken) kopieren und umbenennen möchte, aber mir ist kein einfacher Weg bekannt, dies zu erreichen.
Ich stelle fest, dass es in der R2-Version von SQL Server einen Assistenten zum Kopieren von Datenbanken gibt, aber leider kann ich kein Upgrade durchführen.
Bei der fraglichen Datenbank handelt es sich um einen Gig. Ich habe versucht, eine Sicherung der Datenbank wiederherzustellen, die ich in eine neue Datenbank kopieren möchte, aber ohne Glück.
Antworten:
Installieren Sie Microsoft SQL Management Studio, das Sie kostenlos von der Microsoft-Website herunterladen können:
Version 2008
Microsoft SQL Management Studio 2008 ist Teil von SQL Server 2008 Express mit erweiterten Diensten
Version 2012
Klicken Sie auf die Schaltfläche Herunterladen und überprüfen Sie
ENU\x64\SQLManagementStudio_x64_ENU.exe
Version 2014
Klicken Sie auf die Schaltfläche Herunterladen und überprüfen Sie MgmtStudio
64BIT\SQLManagementStudio_x64_ENU.exe
Öffnen Sie Microsoft SQL Management Studio .
quelle
Rechtsklick auf die Datenbank zu klonen, klicken
Tasks
, klicken Sie aufCopy Database...
. Folgen Sie dem Assistenten und Sie sind fertig.quelle
Sie können versuchen, die Datenbank zu trennen, die Dateien an einer Eingabeaufforderung in neue Namen zu kopieren und dann beide DBs anzuhängen.
In SQL:
An der Eingabeaufforderung (Ich habe die Dateipfade für dieses Beispiel vereinfacht):
Wieder in SQL:
quelle
select * from OriginalDB.sys.sysfiles
um den Speicherort der DB-Dateien zu finden.Permission denied
in der.mdf
Datei. Ich brauche es jetzt nicht, ich brauchte nur eine Sicherung der ursprünglichen Datenbank, damit ich die ursprüngliche Datenbank später damit überschreiben kann. Ich bin nur neugierig, warum ich einen solchen Fehler erhalte.exec sp_helpdb @dbname='TEMPDB';
Es stellt sich heraus, dass ich versucht habe, aus einem Backup falsch wiederherzustellen.
Zunächst habe ich eine neue Datenbank erstellt und dann versucht, das Backup hier wiederherzustellen. Was ich hätte tun sollen und was am Ende funktioniert hat, war, den Wiederherstellungsdialog aufzurufen und den Namen der neuen Datenbank in das Zielfeld einzugeben.
Kurz gesagt, das Wiederherstellen von einem Backup hat den Trick getan.
Vielen Dank für alle Rückmeldungen und Vorschläge Jungs
quelle
Dies ist das Skript, das ich benutze. Ein bisschen knifflig, aber es funktioniert. Getestet auf SQL Server 2012.
quelle
SET @sourceDb_log = (SELECT files.name FROM sys.databases dbs INNER JOIN sys.master_files files ON dbs.database_id=files.database_id WHERE dbs.name=@sourceDb AND files.type=1)
eine separate Variable für @sourceDb_data mit einer ähnlichen Abfrage (Ersetzen durchfiles.type=0
). HTH!Keine der hier genannten Lösungen hat bei mir funktioniert - ich verwende SQL Server Management Studio 2014.
Stattdessen musste ich das Kontrollkästchen "Tail-Log-Sicherung vor Wiederherstellung durchführen" im Bildschirm "Optionen" deaktivieren: In meiner Version ist es standardmäßig aktiviert und verhindert, dass der Wiederherstellungsvorgang abgeschlossen wird. Nach dem Deaktivieren wurde der Wiederherstellungsvorgang ohne Probleme fortgesetzt.
quelle
Mit MS SQL Server 2012 müssen Sie drei grundlegende Schritte ausführen:
Generieren Sie zunächst eine
.sql
Datei, die nur die Struktur der Quelldatenbank enthält.sql
Datei lokalZweitens ersetzen Sie die Quell-DB durch die Ziel-DB in der
.sql
DateiZum Schluss füllen Sie mit Daten
Data Source=Mehdi\SQLEXPRESS;Initial Catalog=db_test;User ID=sa;Password=sqlrpwrd15
Du bist fertig.
quelle
Sichern Sie in SQL Server 2008 R2 die Datenbank als Datei in einem Ordner. Wählen Sie dann die Wiederherstellungsoption, die im Ordner "Datenbank" angezeigt wird. Geben Sie im Assistenten den gewünschten neuen Namen in die Zieldatenbank ein. Wählen Sie "Aus Datei wiederherstellen" und verwenden Sie die gerade erstellte Datei. Ich habe es nur getan und es war sehr schnell (meine DB war klein, aber immer noch) Pablo.
quelle
Wenn die Datenbank nicht sehr groß ist, können Sie die Befehle "Skriptdatenbank" in SQL Server Management Studio Express anzeigen, die sich in einem Kontextmenü neben dem Datenbankelement selbst im Explorer befinden.
Sie können auswählen, was alles geschrieben werden soll. Sie wollen natürlich die Objekte und die Daten. Anschließend speichern Sie das gesamte Skript in einer einzigen Datei. Anschließend können Sie diese Datei verwenden, um die Datenbank neu zu erstellen. Stellen Sie einfach sicher, dass der
USE
Befehl oben auf die richtige Datenbank eingestellt ist.quelle
Die Lösung basiert auf diesem Kommentar: https://stackoverflow.com/a/22409447/2399045 . Stellen Sie einfach die Einstellungen ein: DB-Name, temporärer Ordner, Ordner mit DB-Dateien. Und nach dem Ausführen haben Sie die Kopie der Datenbank mit dem Namen "sourceDBName_yyyy-mm-dd".
quelle
Skript basierend auf Joe Antwort ( Dateien trennen, kopieren, beide anhängen ).
Es ist nicht notwendig, aber möglicherweise wird der Fehler beim Ausführen verweigert.
@dbName
und@copyDBName
Variablen ein.quelle
Sie können einfach eine neue Datenbank erstellen und dann zu Aufgaben gehen, Daten importieren und alle Daten aus der Datenbank importieren, die Sie in die gerade erstellte Datenbank duplizieren möchten.
quelle
Eine andere Möglichkeit, die den Trick mithilfe des Import / Export-Assistenten ausführt , zuerst eine leere Datenbank zu erstellen, dann die Quelle auszuwählen, die Ihr Server mit der Quellendatenbank ist, und dann im Ziel denselben Server mit der Zieldatenbank auszuwählen (mithilfe der leeren Datenbank) Sie haben zuerst erstellt) und dann auf Fertig stellen geklickt
Es werden alle Tabellen erstellt und alle Daten in die neue Datenbank übertragen.
quelle