Назад | Перейти на главную страницу

Пакетный скрипт с использованием SQLCMD

Привет всем, я пишу пакетный скрипт, который должен прочитать набор файлов SQL, который существует в папке, а затем выполнить их с помощью утилиты SQLCMD.

Когда я пытаюсь выполнить, он не создает выходной файл. Я не уверен, в чем я ошибаюсь, и не знаю, как отлаживать сценарий. Может ли кто-нибудь помочь мне со сценарием?

@echo off


FOR %F IN (C:\SQLCMD\*.SQL) DO sqlcmd -S LENOVO-C00 -U yam -P yam!@ -i %F -o C:\SEL.txt -p -b


IF NOT [%ERRORLEVEL%] ==[0] goto get_Error


:Success
echo Finished Succesffuly
exit /B 0
goto end

:get_error
echo step Failed
exit /B 40

:end

Вам нужно два знака процента в вашем командном файле:

FOR %% F IN (C: \ SQLCMD * .SQL) DO (

sqlcmd -S LENOVO-C00 -U yam -P yam! @ -i %% F -o C: \ SEL.txt -p -b

)

Вы также можете поместить оператор «IF NOT» сразу после sqlcmd, если хотите проверять наличие ошибки после каждой команды sql.

Попробуйте эту строку:

FOR %%F IN (C:\SQLCMD\*.SQL) DO sqlcmd -S LENOVO-C00 -U yam -P yam!@ -i %%F -o C:\SEL.txt -p -b

или даже лучше, начните отладку с

FOR %%F IN (C:\SQLCMD\*.SQL) DO echo %%F 

чтобы увидеть, работает ли этот цикл, или есть проблема с sqlcmd.