Ich habe eine Reihe von SQL-Dateien, die ich ausführen muss, um Änderungen anderer Entwickler auf eine SQL Server 2005-Datenbank anzuwenden. Die Dateien werden nach folgendem Muster benannt:
0001 - abc.sql
0002 - abcef.sql
0003 - abc.sql
...
Gibt es eine Möglichkeit, alle auf einmal auszuführen?
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P "password" -i"%%G"
Verwenden Sie FOR . An der Eingabeaufforderung:
quelle
for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f" >> sql.log 2>&1)
WeitereÖffnen Sie im SQL Management Studio eine neue Abfrage und geben Sie alle Dateien wie folgt ein
Klicken Sie auf SQLCMD-Modus. Dateien werden wie unten grau ausgewählt
quelle
Stellen Sie sicher, dass SQLCMD aktiviert ist, indem Sie im Management Studio auf die Option Abfrage> SQLCMD-Modus klicken.
Angenommen, Sie haben vier SQL-Dateien (
script1.sql,script2.sql,script3.sql,script4.sql
) in einem Ordnerc:\scripts
.Erstellen Sie eine Hauptskriptdatei (Main.sql) mit den folgenden Angaben:
Speichern Sie die Datei Main.sql in c: \ scripts.
Erstellen Sie eine Batchdatei
ExecuteScripts.bat
mit dem Namen :Denken
<YourDatabaseName>
Sie daran, diese durch die Datenbank zu ersetzen, in der Sie Ihre Skripte ausführen möchten. Wenn die Datenbank beispielsweise "Mitarbeiter" lautet, lautet der Befehl wie folgt:Führen Sie die Batchdatei durch Doppelklick aus.
quelle
-b
Beispiel:SQLCMD -b -i "file 1.sql","file 2.sql"
Sie können ApexSQL Propagate verwenden . Es ist ein kostenloses Tool, das mehrere Skripte in mehreren Datenbanken ausführt. Sie können beliebig viele Skripte auswählen und für eine oder mehrere Datenbanken (sogar mehrere Server) ausführen. Sie können eine Skriptliste erstellen und speichern und diese Liste dann jedes Mal auswählen, wenn Sie dieselben Skripte in der erstellten Reihenfolge ausführen möchten (es können auch mehrere Skriptlisten hinzugefügt werden):
Wenn Skripte und Datenbanken ausgewählt sind, werden sie im Hauptfenster angezeigt. Sie müssen lediglich auf die Schaltfläche „Ausführen“ klicken und alle Skripte werden in der angegebenen Reihenfolge für ausgewählte Datenbanken ausgeführt:
quelle
Allgemeine Abfrage
Speichern Sie die folgenden Zeilen im Editor mit dem Namen batch.bat und platzieren Sie sie in dem Ordner, in dem sich alle Ihre Skriptdateien befinden
BEISPIEL
für %% G in (* .sql) machen Sie sqlcmd / S NFGDDD23432 / d EMPLYEEDB -i "%% G" Pause
Wenn die Anmeldung für Sie fehlgeschlagen ist, verwenden Sie bitte den folgenden Code mit Benutzername und Passwort
für %% G in (* .sql) mache sqlcmd / S NE8148server / d EMPLYEEDB -U Scott -P Tiger -i "%% G" Pause
Nachdem Sie die Bat-Datei in dem Ordner erstellt haben, in dem sich Ihre Skriptdateien befinden, klicken Sie einfach auf die Bat-Datei, in der Ihre Skripte ausgeführt werden
quelle
Ich habe ein Open-Source-Dienstprogramm in C # geschrieben, mit dem Sie viele SQL-Dateien per Drag & Drop verschieben und für eine Datenbank ausführen können.
Das Dienstprogramm verfügt über die folgenden Funktionen:
quelle
Der einfachste Weg, den ich gefunden habe, umfasste die folgenden Schritte (die einzige Voraussetzung ist, dass es in Win7 + ist):
Es klingt lang, aber in Wirklichkeit ist es sehr schnell. (Es klingt lang, wie ich selbst die kleinsten Schritte beschrieben habe.)
quelle
Was ich weiß, können Sie die Befehle osql oder sqlcmd verwenden, um mehrere SQL-Dateien auszuführen. Der Nachteil ist, dass Sie für beide Befehle ein Skript erstellen müssen.
Verwenden von SQLCMD zum Ausführen mehrerer SQL Server-Skripts
OSQL (Dies ist für SQL Server 2000)
http://msdn.microsoft.com/en-us/library/aa213087(v=SQL.80).aspx
quelle
Schritt 1: Über den Zeilen in Notizblock kopieren, als Fledermaus speichern.
Schritt 2: In d Laufwerk abc Ordner in allen SQL-Dateien in Abfragen in SQL Server ausgeführt.
Schritt 3: Geben Sie Ihre IP-Adresse, Benutzer-ID und Ihr Passwort an.
quelle
Sie können ein einzelnes Skript erstellen, das alle anderen aufruft.
Fügen Sie Folgendes in eine Batch-Datei ein:
Wenn Sie diese Batchdatei ausführen, wird ein neues Skript mit
all.sql
demselben Namen erstellt, in dem sich die Batchdatei befindet. Es wird nach allen Dateien mit der Erweiterung.sql
in demselben Verzeichnis gesucht, in dem sich die Batchdatei befindet.Sie können dann alle Skripte ausführen, indem Sie
sqlplus user/pwd @all.sql
(oder die aufzurufende Batchdateisqlplus
nach dem Erstellen desall.sql
Skripts erweitern).quelle
Verwenden Sie den folgenden Befehl, um jede SQL-Datei im selben Verzeichnis auszuführen:
Dieser Befehl erstellt eine einzelne SQL-Datei mit den Namen jeder SQL-Datei in dem Verzeichnis, an das "@" angehängt ist.
Nachdem das
all.sql
erstellt wurde, führen Sie es einfachall.sql
mit SQLPlus aus. Dadurch wird jede SQL-Datei im ausgeführtall.sql
.quelle
Wenn Sie Interactive SQL verwenden können:
1 - Erstellen Sie eine .BAT-Datei mit diesem Code:
2 - Ändern Sie den pwd und den Servernamen.
3 - Legen Sie die .BAT-Datei in den Ordner, der .SQL-Dateien enthält, und führen Sie sie aus.
quelle