Ich möchte eine T-SQL-Skript-basierte Möglichkeit finden, meine "PROD" -Datenbank (die schreibgeschützt ist und aus mehreren Dateigruppen besteht) in eine lesbare / beschreibbare "EDIT" -Datenbank zu kopieren, in der ich Daten verwenden und bearbeiten kann .
Ich kenne den Assistenten zum Kopieren von Datenbanken und verwende ihn derzeit. Ich würde dies jedoch lieber automatisieren, damit ein einzelnes Skript die PROD-Datenbank aus einer Sicherung wiederherstellen und auch in die EDIT-Datenbank kopieren kann.
Es scheint, dass es in T-SQL keinen Befehl "COPY DATABASE" gibt, und ich kann auch keinen anderen Weg finden, um dies zu erreichen - abgesehen davon, dass die Sicherung zweimal wiederhergestellt wird. "Ja wirklich?" Gibt es keinen besseren Weg, dies zu tun?
Was ich tun möchte, ist Folgendes:
- Starten Sie die Wiederherstellung von der Festplatte in "MyPROD_Database".
- Nachdem ich fertig bin, möchte ich die Datenbank, die ich gerade wiederhergestellt habe, in "MyEDIT_Database" kopieren.
- Als letzten Schritt möchte ich die Dateigruppen meiner PROD-Datenbank auf schreibgeschützt setzen
Am besten alles in einem T-SQL-Skript, das ich von SSMS und / oder sqlcmd ausführen kann.
Das System ist SQL Server 2005 (von wo die Sicherung stammt) und SQL Server 2008 (von wo ich wiederherstelle).
Der Handschuh ist da draußen - wer wird ihn abholen? :-)
Marc
quelle
Der SQL Server-Veröffentlichungsassistent kann mit Befehlszeilenargumenten automatisiert werden.
Von der Hilfeseite
Sobald Sie dieses Skript haben, können Sie es mit SQLCMD auf Ihrer anderen Datenbankinstanz ausführen .
quelle
Wenn der Login, auf dem das Skript ausgeführt wird, über Systemadministratorrechte verfügt, können Sie Folgendes tun:
Wenn Sie entweder SQLCMD oder den SQLCMD-Modus von Management Studio verwenden können, um das Skript auszuführen, können Sie auch SQLCMDs nutzen !! Syntax zum Ausführen eines Betriebssystembefehls zum Kopieren der Dateien.
In jedem Fall müssen Sie (und auch der Kopierdatenbank-Assistent) die PROD-Datenbank offline schalten, um die Kopie zu erstellen. Wenn dies keine Option ist, können mehrere Wiederherstellungen Ihre einzige Wahl sein.
quelle
Kann dies helfen: http://www.codeproject.com/KB/database/ScriptDatabase.aspx
quelle
Schauen Sie sich einige dieser Ressourcen an.
http://www.sqlservercentral.com/scripts/Backup+%2f+Restore/66372/
http://www.sqlservercentral.com/scripts/Backup+%2f+Restore/62380/
quelle
Dies könnte nützlich sein:
SQL Multiscript
quelle
Viel schneller und einfacher eine Sicherung / Wiederherstellung durchzuführen:
quelle