Ich habe eine SQL-Datenbank und Tabellen, die ich in einem anderen SQL Server replizieren möchte. Ich möchte ein SQL-Skript erstellen, das die Datenbank und die Tabellen in einem einzigen Skript erstellt.
Ich kann für jeden Fall ein "Create" -Skript mit SQL Management Studio erstellen (Datenbank und Tabellen), möchte aber wissen, ob die Kombination der beiden "Create" -Skripte zu einem einzigen Skript ausreicht.
Vielen Dank.
sql
sql-server
Tony
quelle
quelle
Antworten:
In SQL Server Management Studio können Sie mit der rechten Maustaste auf die Datenbank klicken, die Sie replizieren möchten, und "Skriptdatenbank als" auswählen, damit das Tool die entsprechende SQL-Datei erstellt, um diese Datenbank auf einem anderen Server zu replizieren. Sie können diesen Vorgang für jede Tabelle wiederholen, die Sie erstellen möchten, und dann die Dateien in einer einzelnen SQL-Datei zusammenführen. Vergessen Sie nicht, nach dem Erstellen Ihrer Datenbank, jedoch vor jeder Tabellenerstellung, eine using-Anweisung hinzuzufügen.
In neueren Versionen von SQL Server können Sie dies in einer Datei in SSMS erhalten.
Dadurch wird ein Assistent gestartet, mit dem Sie die gesamte Datenbank oder nur Teile skripten können. Es scheint keine T-SQL-Methode dafür zu geben.
quelle
Obwohl Claytons Antwort Sie (irgendwann) dorthin bringt, haben Sie in SQL2005 / 2008 / R2 / 2012 eine weitaus einfachere Option:
Klicken Sie mit der rechten Maustaste auf die Datenbank, wählen Sie
Tasks
und dannGenerate Scripts
, um den Skript-Assistenten zu starten. Auf diese Weise können Sie ein einzelnes Skript generieren, mit dem die gesamte Datenbank einschließlich Tabelle / Indizes und Einschränkungen / gespeicherte Prozeduren / Funktionen / Benutzer / etc. Neu erstellt werden kann. Es gibt eine Vielzahl von Optionen, die Sie konfigurieren können, um die Ausgabe anzupassen. Das meiste davon ist jedoch selbsterklärend.Wenn Sie mit den Standardoptionen zufrieden sind, können Sie den gesamten Job in Sekundenschnelle erledigen.
Wenn Sie die Daten in der Datenbank neu erstellen möchten (als eine Reihe von INSERTS), würde ich auch das SSMS Tools Pack empfehlen (kostenlos für SQL 2008, kostenpflichtig für SQL 2012).
quelle
Eine hervorragende Erklärung finden Sie hier: Generieren Sie ein Skript in SQL Server Management Studio
Mit freundlicher Genehmigung von Ali Issa Folgendes müssen Sie tun:
Wenn Sie ein Skript erstellen möchten, das nur die Tabellen generiert (keine Daten), können Sie den erweiterten Teil der Anweisungen überspringen!
quelle
Ich bin mir nicht sicher, warum SSMS die Ausführungsreihenfolge nicht berücksichtigt, aber einfach nicht. Dies ist kein Problem für kleine Datenbanken, aber was ist, wenn Ihre Datenbank 200 Objekte enthält? In diesem Fall spielt die Reihenfolge der Ausführung eine Rolle, da es nicht wirklich einfach ist, all dies durchzugehen.
Für ungeordnete Skripte, die von SSMS generiert wurden, können Sie folgen
a) Führen Sie das Skript aus (einige Objekte werden nicht eingefügt, es treten Fehler auf).
b) Entfernen Sie alle Objekte aus dem Skript, die der Datenbank hinzugefügt wurden
c) Gehen Sie zurück zu a), bis schließlich alles ausgeführt ist
Alternativ können Sie Tools von Drittanbietern wie ApexSQL Script oder andere bereits in diesem Thread erwähnte Tools (SSMS-Toolpack, Red Gate und andere) verwenden.
All dies kümmert sich um die Abhängigkeiten für Sie und spart Ihnen noch mehr Zeit.
quelle
Ja, Sie können einem Skript so viele SQL-Anweisungen hinzufügen, wie Sie möchten. Nur eines zu beachten: Die Reihenfolge ist wichtig. Sie können erst dann in eine Tabelle einfügen, wenn Sie sie erstellt haben. Sie können keinen Fremdschlüssel festlegen, bis der Primärschlüssel eingefügt ist.
quelle