2012-02-06 3 views
0

У меня есть около 100 скриптов, которые необходимо выполнить на SSMS. Как я могу выполнять их как пакет, а не выполнять каждый отдельно.Выполнение SQL-скриптов в пакете

Я пробовал использовать это, но он не работал.

@echo off 
ECHO %USERNAME% started the batch process at %TIME% >output.txt 


FOR %%? in ("1.01*.SQL") DO 
(
sqlcmd.exe -S local -E -d collect -i %%? >>output.txt 
) 

pause 

ответ

3

Следующая запускает все сценарии в каталоге, выходные данные к .log файл и ошибок к .err.log файла:

@echo off 
echo "Enter Server" 
set /p SERVER= 

echo "Enter Database" 
set /p DATABASE= 

if exist *.log (del *.log) 

rem Process the files 
for %%i in (*.sql) do osql -E -S %SERVER% -d %DATABASE% -i"%%i" -m0 -w500 -I -b -r -o"%%i.log" 2>%%i.err.log 

rem Remove empty .err files (ie had no errors) 
for %%a in (*.err.log) do if %%~za==0 del "%%a" 


pause 

Примечание: Более ранняя версия этого используется sqlcmd однако возникли проблемы с отсутствием данных sqlcmd в выходных журналах.

+0

Я побежал партию, так что создали .SQL файл для каждого сценария и я посмотрел на файл и он имеет такие значения, как: 1> 2> 3> 4> 5>. И он не создал ни одного файла журнала или файла журнала ошибок. – peter

+0

Вы увидите «.sql», потому что у вас нет возможности включить расширения файлов в проводнике Windows. Имена файлов добавляются в .log, поэтому они заканчиваются как «myscript.sql.log», например. 1> 2> 3> - выход из osql. –

0

Для всех:

Я нашел некоторые проблемы с вышеизложенным, как и Windows 7 Dos не нравятся %% я или %% так я удалил символа «%» затем начал сценарий дос работать просто отлично.

Ниже приведена моя текущая версия сценария, в которой выполняется сценарий «1.A00 * .SQL», который усекает мои целевые таблицы.

"A * .SQL" запустить скрипт A01_name.sql -> A24_name.sql последовательно, что довольно неплохо

Hank Freeman [email protected]

конец.

REM "FSA_3.2.2_Runner_for_Insert_Scripts.bat

Рем" Script бегуна "

Rem" Как использовать этот сценарий»

Rem "От сеанса удаленного рабочего стола Открыть Dos Prompt"

Рем "Запуск ниже сценарий"

Rem "Проверить данные были вставлены."

Рем "пятнадцатом Хэнка Freeman июля 2014 [email protected]"

Рем "* начать *"

с:

кд \

кд C: \ Database_Scripts \ Insert_Scripts

@echo от

если есть * .log (дель * .log)

бэр "** Начиная здесь *"

бэр "запустить файл усечения SQL"

для% я в (1.A00_ *. SQL) do osql -E -i "% i" -m0 -w500 -I -b -r -o "% i.log" 2>% i.err.войти

бэр "запустить SQL файл A01-A24"

для% я в (A * .SQL) сделать OSQL -E -i "% я" -m0 -w500 -I -b -r - о "% i.log" 2>% i.err.log

бэр Удалить пустые .ERR файлы (т.е. не было ошибок)

для% а в (*) .err.log делать, если% ~ ZA == 0 дель "% в"

бэр "Удалить журналы - Руководство по эксплуатации"

бэр при наличии * .log (дель * .log)

Рем «* конец *»

@echo на

Смежные вопросы