it-swarm.com.de

Führen Sie alle SQL-Dateien in einem Verzeichnis aus

Ich habe eine Reihe von .sql-Dateien, die ich ausführen muss, um Änderungen anzuwenden, die von anderen Entwicklern in einer SQL Server 2005-Datenbank vorgenommen wurden .. 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?

101
K.A.D.

Erstellen Sie eine .BAT-Datei mit dem folgenden Befehl:

for %%G in (*.sql) do sqlcmd /S servername /d databaseName -E -i"%%G"
pause

Fügen Sie diese .BAT-Datei in das Verzeichnis ein, von dem aus die SQL-Dateien ausgeführt werden sollen.

121
Vijeth

Verwenden Sie FÜR . Von der Eingabeaufforderung:

c:\>for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f"
65
Remus Rusanu
  1. Öffnen Sie in SQL Management Studio eine neue Abfrage und geben Sie alle Dateien wie folgt ein

    :r c:\Scripts\script1.sql
    :r c:\Scripts\script2.sql
    :r c:\Scripts\script3.sql
    
  2. Gehen Sie in SQL Management Studio zum Menü Abfrage, und stellen Sie sicher, dass der SQLCMD-Modus aktiviert ist
  3. Klicken Sie auf SQLCMD-Modus. Die Dateien werden wie unten grau markiert

    :r c:\Scripts\script1.sql
    :r c:\Scripts\script2.sql
    :r c:\Scripts\script3.sql
    
  4. Jetzt ausführen
22

Stellen Sie sicher, dass SQLCMD aktiviert ist, indem Sie im Management Studio auf die Option Abfrage> SQLCMD-Modus klicken.

  1. Angenommen, Sie haben vier .sql-Dateien (script1.sql,script2.sql,script3.sql,script4.sql) in einem Ordner c:\scripts.

  2. Erstellen Sie eine Hauptskriptdatei (Main.sql) mit den folgenden Anweisungen:

    :r c:\Scripts\script1.sql
    :r c:\Scripts\script2.sql
    :r c:\Scripts\script3.sql
    :r c:\Scripts\script4.sql
    

    Speichern Sie die Main.sql in c:\scripts selbst.

  3. Erstellen Sie eine Batchdatei mit dem Namen ExecuteScripts.bat mit den folgenden Angaben:

    SQLCMD -E -d<YourDatabaseName> -ic:\Scripts\Main.sql
    PAUSE
    

    Denken Sie daran, <YourDatabaseName> durch die Datenbank zu ersetzen, in der Sie Ihre Skripts ausführen möchten. Wenn die Datenbank beispielsweise "Employee" ist, lautet der Befehl wie folgt:

    SQLCMD -E -dEmployee -ic:\Scripts\Main.sql
    PAUSE
    
  4. Führen Sie die Batchdatei durch Doppelklick aus.

18
Ashish Gupta

Sie könnten ApexSQL Propagate verwenden. Es ist ein kostenloses Tool, das mehrere Skripts in mehreren Datenbanken ausführt. Sie können beliebig viele Skripts auswählen und sie für eine oder mehrere Datenbanken (sogar mehrere Server) ausführen. Sie können eine Skriptliste erstellen und speichern. Wählen Sie diese Liste dann jedes Mal aus, wenn Sie dieselben Skripts in der erstellten Reihenfolge ausführen möchten (es können auch mehrere Skriptlisten hinzugefügt werden):

 Select scripts

Wenn Sie Skripts und Datenbanken ausgewählt haben, werden diese im Hauptfenster angezeigt. Klicken Sie einfach auf die Schaltfläche "Ausführen", und alle Skripts werden in der angegebenen Reihenfolge in ausgewählten Datenbanken ausgeführt:

 Scripts execution

9
Kevin L

Allgemeine Anfrage

speichern Sie die folgenden Zeilen im Notepad mit dem Namen batch.bat und legen Sie in den Ordner, in dem sich Ihre gesamte Skriptdatei befindet

 for %%G in (*.sql) do sqlcmd /S servername /d databasename  -i"%%G"
    pause

BEISPIEL

für %% G in (* .sql) do sqlcmd/S NFGDDD23432 / dEMPLYEEDB-i "%% G" pause

sollte der Login für Sie fehlschlagen, verwenden Sie bitte den folgenden Code mit Benutzername und Passwort

for %%G in (*.sql) do sqlcmd /S SERVERNAME /d DBNAME -U USERNAME -P PASSWORD -i"%%G"
pause

für %% G in (* .sql) do sqlcmd/S NE8148server / dEMPLYEEDB-U Scott -P Tiger -i "%% G"Pause

Nachdem Sie die Bat-Datei in dem Ordner erstellt haben, in dem sich Ihre Script-Dateien befinden, klicken Sie einfach auf die Bat-Datei, und Ihre Scripts werden ausgeführt

6
Lijo

Ich habe ein Open Source-Dienstprogramm in C # geschrieben, mit dem Sie viele SQL-Dateien ziehen und ablegen und in einer Datenbank ausführen können.

Das Dienstprogramm verfügt über die folgenden Funktionen:

  • Drag & Drop Skriptdateien 
  • Führen Sie ein Verzeichnis mit Skriptdateien aus 
  • SQL-Skript ausgegeben Nachrichten während der Ausführung 
  • Skript bestanden oder nicht bestanden, grün und rot (gelb zum Ausführen) 
  • Stop bei Fehleroption 
  • Skript bei Fehleroption öffnen 
  • Führen Sie den Bericht mit der für jedes Skript benötigten Zeit aus 
  • Gesamtdauer 
  • Testen Sie die DB-Verbindung 
  • Asynchronus 
  • .Net 4 und getestet mit SQL 2008 
  • Einzelne Exe-Datei 
  • Töte die Verbindung jederzeit 
5
Clinton Ward

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/de-de/library/aa213087(v=SQL.80).aspx

2
Aseem Gautam

Wenn Sie Interactive SQL verwenden können:

1 - Erstellen Sie eine .BAT-Datei mit diesem Code:

@ECHO OFF ECHO
for %%G in (*.sql) do dbisql -c "uid=dba;pwd=XXXXXXXX;ServerName=INSERT-DB-NAME-HERE" %%G
pause

2 - Ändern Sie das Kennwort und den Servernamen.

3 - Legen Sie die .BAT-Datei in den Ordner, der .SQL-Dateien enthält, und führen Sie sie aus.

0
Alberto Labuto
@echo off
cd C:\Program Files (x86)\MySQL\MySQL Workbench 6.0 CE

for %%a in (D:\abc\*.sql) do (
echo %%a
mysql --Host=ip --port=3306 --user=uid--password=ped < %%a
)

Schritt 1: über die Zeilen in den Notizblock kopieren und als Fledermaus speichern.

step2: Im abc-Ordner des Laufwerks in allen SQL-Dateien in Abfragen, die auf dem SQL-Server ausgeführt werden.

schritt 3: Geben Sie Ihre IP-Adresse, Benutzer-ID und Ihr Kennwort ein.

0

Verwenden Sie den folgenden Befehl, um jede SQL-Datei in demselben Verzeichnis auszuführen:

ls | awk '{print "@"$0}' > all.sql

Dieser Befehl erstellt eine einzelne SQL-Datei mit den Namen aller SQL-Dateien in dem Verzeichnis, das durch "@" angehängt wird.

Nachdem der all.sql erstellt wurde, führen Sie einfach all.sql mit SQLPlus aus. Dadurch wird jede SQL-Datei im all.sql ausgeführt.

0
user7609040

Sie können ein einzelnes Skript erstellen, das alle anderen aufruft.

Fügen Sie Folgendes in eine Batchdatei ein:

@echo off
echo.>"%~dp0all.sql"
for %%i in ("%~dp0"*.sql) do echo @"%%~fi" >> "%~dp0all.sql"

Wenn Sie diese Batchdatei ausführen, wird ein neues Skript mit dem Namen all.sql in demselben Verzeichnis erstellt, in dem sich die Batchdatei befindet. Es wird nach allen Dateien mit der Erweiterung .sql in demselben Verzeichnis suchen, in dem sich die Batchdatei befindet.

Sie können dann alle Skripts mit sqlplus user/pwd @all.sql ausführen (oder die Stapeldatei erweitern, um nach dem Erstellen des all.sql-Skripts sqlplus aufzurufen)

0
rahul jain