Datenbank kopieren im SQL Express 2012

Granados

Benutzer
Beiträge
5
Hallo allerseits!

Wer kennt nicht die gängige Anforderung, mal kurz einen "Spielmandanten" für seine Anwendung erstellen zu müssen. Einen Datenbastand, in dem man sich hemmungslos austoben kann, ohne die "scharfen" Daten zu berühren. Am besten realisiere ich das mit einer separaten Datenbank, in einer Kopie. Doch wie so eine Kopie erzeugen?

Ich hab Folgendes ausprobiert (im Management Studio): Erstens, die Sichern- und Wiederherstellmethode in eine Datenbank mit anderem Namen. Ein Fehlschlag, der Datenbestand will sich nicht in eine anders benannte Datenbank und physikalisch getrennte mdf übertragen lassen.
Zweitens die Skripterstellung. Dabei wird die Datenbank incl. Schema und Daten (auch noch Benutzer) in eine riesige Skriptdatei geschrieben und kann dann, mit entdprechend geändertem Skript, eine neue und separate Datenbank erzeugen. Das klappt soweit, bis auf die Diagramme. Die Verknüpfungen zwischen Tabellen werden nicht mit dem Skript transportiert, oder habe ich etwas übersehen?

Kurz: ich komme auf "keinen grünen Zweig". Also bleibt nur noch die altbewährte sp_attach_db Methode mit all den bekannten Widrigkeiten. Meine Frage also: Wie kann ich komfortabel eine Datenbankkopie im SQL Server Express 2012 erzeugen?

Danke im Voraus: Granados
 
Werbung:
Die "Verknüpfungen zwischen Tabellen" sind ansich erstmal Fremdschlüsseldefinitionen, die siehst du im SQL Management Studio und die müssten beim Tabellenexport eigentlich auch mit exportiert werden. Ansonsten ließe sich das zumindest manuell pro Schlüssel bewerkstelligen.

Ich glaube die Verknüpfungen in den Diagrammen beziehen sich darauf. Ich muss aber sagen ich habe lange keine mehr benutzt. Die Diagramme sind auch nicht wirklich Bestandteil der Datenbank sondern eine Funktion des Management Studios. Dafür gibt es keine SQL Syntax die ein Diagramm erzeugt.

Grundsätzlich ist die Express Version natürlich etwas limitiert. Eine Ein-Click-Lösung kenne ich nicht, es gibt aber womöglich Scripte die (bis auf die Diagramme) dir alles kopieren sollten.
 
Werbung:
Die "Verknüpfungen zwischen Tabellen" sind ansich erstmal Fremdschlüsseldefinitionen, die siehst du im SQL Management Studio ...

Danke für den Hinweis. Die Diagrammdarstellung ist eigentlich überflüssig und dient lediglich der Veranschaulichung.

Eine einfache, komfortable Kopiermöglichkeit gibt es im Express 2012 nicht. Nach einigen Korrespondenzen und Forenabfragen hab ich folgenden Weg gefunden, innerhalb des Management Studios eine Kopie zu erstellen, ohne den Server anzuhalten:

1.) Die Datenbank sichern, die kopiert werden soll (wohin und wie ist egal, es muss einfach gemacht sein).

2.) Neue Datenbank anlegen (Name der Kopie vergeben, sonst nichts).

3.) Dialog Datenbank wiederherstellen (irgendwo durch Rechtsklick im Bereich Datenbanken).

4.) Seite Allgemein: Quelle (Datenbank) und Ziel (Kopie-Datenbank) einsetzen über Dropdown (wenn das nicht geht, fehlt Schritt 1 und/oder 2).

5.) Seite Dateien: Dort in den beiden Zeilen (mdf und ldf) die neuen, physikalisch Namen für die Datenbank händisch eintragen.
Dafür die Spalte vergrößern. Achtung! Die logischen Dateinamen können erst später geändert werden.

6.) Seite Optionen: Kästchen "Vorhandene Datenbank überschreiben" aktivieren. Kästchen "Protokollfragment vor der Wiederherstellung sichern"
deaktivieren!

OK bestätigen, danach sollte die Datenbank kopiert werden. Nachträglich können jetzt die logischen Dateinamen (mdf/ldf) der
Kopie geändert werden.

Vielen Dank und viel Erfolg, vielleicht kann es ja jemand gebrauchen. Viele Grüße: Granados
 
Zurück
Oben