Microsoft SQL Server Management Studio führt ein Skript in einem Skript aus

Translate

Ich möchte in der Lage sein, eine Reihe verschiedener Skripts zum Erstellen von Tabellen separat speichern und speichern zu lassen.

Um die gesamte Datenbank zu erstellen, hätte ich eine Master-SQL-Datei, die alle Skripte der Reihe nach aufruft, damit alle Fremdschlüssel in den Tabellen in der richtigen Reihenfolge erstellt werden.

Ich könnte dann auch ein Skript erstellen, um die gesamte Tabellenstruktur zu löschen, indem ich sie alle in umgekehrter Reihenfolge ablege.

Gibt es eine Möglichkeit, dies zu tun?

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Das Dunkle benutzenr:SQLCMD-Befehl:

: r <Dateiname>

Analysiert zusätzliche Transact-SQL-Anweisungen und sqlcmd-Befehle aus der durch angegebenen Datei in den Anweisungscache.

Angenommen, Ihre Erstellungsskripte sindcreateT1.sqlundcreateT2.sqldann wäre Ihre Master-SQL-Datei ungefähr so:

create database foo;
go

use foo;
go

:r createT1.sql
:r createT2.sql
go

Diese Syntax funktioniert auch in SSMS, solange Sie den SQLCMD-Modus aktivieren (siehe)Bearbeiten von SQLCMD-Skripten mit dem Abfrageeditor. Auch derdbutilsqlcmdBibliothek unterstützt die:rErweiterung, wenn Sie diese in Ihre Anwendung einbetten möchten.

Quelle
Anonymous
Translate

Ich denke, der einfachste Weg wäre, einen Meister zu habenStapelDatei, und innerhalb dieser Batch-Datei können Sie aufrufensqlcmdnacheinander zu allen Skriptdateien (* .sql).

Hier ist eine gute Referenz dazu:http://www.mssqltips.com/sqlservertip/1543/using-sqlcmd-to-execute-multiple-sql-server-scripts/

Quelle
Translate

Da Sie SSMS direkt in den Titel Ihrer Frage eingefügt haben, gehe ich davon aus, dass Sie dies von dort aus tun möchten.

Sie können SSMS im SQLCMD-Modus ausführen. Dies sollte Ihnen viel mehr Flexibilität geben. Sie können eine kurze Demo davon sehenHieroder suchen Sie nach weiteren Informationen überMicrosoft-Website.

Für eine einfache Befehlszeilenfunktion würde ich persönlich ein Powershell-Skript verwenden. Sie können die Microsoft SQL-Cmdlets hinzufügen, um eine Verbindung zu einem SQL Server herzustellen, oder Sie können Ihre eigenen mit SMO rollen oder eine Drittanbieterlösung wie Open Source SQLPSX verwenden.

Quelle
Über den Autor