PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQL-Dump von MS SQL Express



Trent_R
16.06.2012, 17:39
Tach Gemeinde!

Es gibt ja so einige Windows-Anwendungen, die als Datenbank MS SQL-Server Express mitbringen. Manche von denen sind allerdings nicht besonders darauf ausgelegt, auf einen neuen Computer umzuziehen. Man kann zwar mittels SQLCMD.EXE und dem Backup-Befehl Backups der Datenbanken ziehen und diese auf einem anderen Rechner wieder in die Datenbank einbinden, jedoch streiken manche Anwendungen, weil sie irgendwo in der Datenbank z.B. den Rechnernamen hinterlegen und nicht mehr funktionieren wollen, wenn dieser nicht mehr mit dem in der Datenbank hinterlegten übereinstimmt.

MySQL bietet ja den praktischen Befehl mysqldump, mit dem sich eine Datenbank in eine SQL-(Text-)Datei bringen lässt, aus der man die Datenbank wiederherstellen kann. Und man kann vorher diese Textdatei nach besagten Begriffen durchforsten und diese gegebenenfalls ändern, bevor man die SQL-Datei auf dem Zielrechner wieder importiert. So bekommt man z.B. Wordpress auf eine andere Domain umgezogen.

Meine Frage ist jetzt: Gibt es diese Möglichkeit bei MS SQL Express (2005 oder 2008) auch? Und wenn ja, wie funktioniert die Methode? Am besten mit Bordmitteln.

Gruß

Trent

fireball
16.06.2012, 21:33
Probier mal das hier:

http://www.beletsky.net/2011/02/how-to-export-sql-data-script-for-sql.html?m=1

Trent_R
17.06.2012, 15:11
Klingt schon mal nicht schlecht. Werd's morgen austesten. Danke!

Trent_R
18.06.2012, 14:19
So, hab's mal getestet. Mit einer kleinen Testdatenbank lief der Export ins SQL-Script ziemlich gut. Allerdings kam bei der eigentlichen Datenbank ein Out of Memory Error und das Tool bricht ab. Möglicherweise ist das ganze nicht darauf ausgelegt, den ganzen Datenbestand mit ins Script zu packen. Dieser Punkt steht standardmäßig auch auf False. Schade.

Bin aber offen für weitere Ideen.

fireball
19.06.2012, 08:54
Ist es eine Option für Dich, die Volltextsuche zu aktivieren und nach Einspielen des Dumps alle relevanten Stellen (Servernae?) manuell zu suchen?

Trent_R
19.06.2012, 09:52
Das ginge sicher auch. Ich habe hier (http://http://getmssqldump.codeplex.com/) noch ein Powershell-Script gefunden, welches die Funktion von mysqldump für MS SQL nachbilden soll, hab dieses aber noch nicht getestet.

Schade, dass Microsoft nur das proprietäre Backup anbietet (OK, immerhin ist SQL Express kostenlos) bzw. die Anbieter von Software, die MS SQL Express verwendet, sich keine Gedanken über so Nebensächlichkeiten wie Backup und Umzug auf andere Umgebungen machen.

fireball
19.06.2012, 20:51
Sagen wir mal so: üblicherweise gibts ja auch keinen Grund, in eine Datenbank nochmal ihren eigenen Connectstring zu packen. Und falls man auf andere Server verweisen muss, dann macht man das doch eher an recht zentraler Stelle und per Oberfläche in der Anwendung konfigurierbar. Sprach der Entwickler.

frozeneye
19.06.2012, 21:30
Hi,

ich vertue mich ja vielleicht, aber soweit ich das im Kopf habe, solltest Du die SQL-Express-DB auch in einen normalen SQL-Server hängen können. Dann kannst Du Dich im Management-Studio auf der DB austoben und ggfls. Hostnamen etc. anpassen können. Wäre ein Versuch wert.

Solange Du nur Werte in ner Tabelle änderst und nix an den Eigenschaften der DB selber änderst, sollte es funkktionieren.

fireball
19.06.2012, 23:46
Man kann auch mit dem Management Studio direkt auf die SQLExpress-Instanz connecten ;)