Ich kombinierte ein paar Lösungen, die ich online gefunden habe, um zu versuchen, dies zu erreichen.Führen Sie alle SQL-Dateien in mehreren Verzeichnissen
https://stackoverflow.com/a/6504317/2471473
https://sqlandme.com/2013/03/25/sql-server-executing-multiple-script-files-using-sqlcmd/
Ich versuche, einen einzigen .cmd-Skript (Script1.cmd) mit Ordnern von SQL-Dateien ausführen. Dieses einzelne Skript führt ein anderes Skript (Script2.cmd) aus, um sqlcmd zum Ausführen aller .sql-Dateien an diesem Speicherort zu verwenden. Es funktioniert meistens, aber es bleibt ein Befehlsfenster offen, das ich für jeden Ordnerstandort verlassen muss.
Script1.cmd
start Script2.cmd "C:\Location1"
start Script2.cmd "C:\Location2"
Script2.cmd
@Echo Off
FOR /f %%i IN ('DIR %1\*.Sql /B') do call :RunScript %1 %%i
GOTO :END
:RunScript
Echo Executing Script: %2
cd %1
SQLCMD -S Server123 -d Database456 -E -i %2
Echo Completed Script: %2
:END
Haben Sie wirklich beide 'Script2.cmd' wollen Befehlszeilen gleichzeitig laufen zu lassen? – aschipfl
@aschipfl könnte ich sie seriell von Scrip1 ausführen? – Kennah
Ja: Um nacheinander zu laufen, benutzen Sie einfach 'call Script2.cmd *' ... Sie können auch 'start" "/ WAIT cmd/C Script2.cmd *' verwenden, wenn Sie ein neues Fenster öffnen möchten Jeder Lauf ... – aschipfl