sqlcmd с выходным файлом и выводом на экран - PullRequest
5 голосов
/ 17 февраля 2012

Я делаю некоторые командные строки (.bat) с sqlcmd следующим образом:

sqlcmd -i Scripts\STEP01.sql -o PROCESS.log -S MYSERVER -E -d MYDATABASE

и мне нужен выходной файл (он работает в настоящее время), а также вывод на экран, что-то вроде:

@echo off
echo The result of the query was:
    sqlcmd -i Scripts\STEP01.sql -o PROCESS.log -S MYSERVER -E -d MYDATABASE
pause
CHOICE /C:YN /M "Is the result accord?"
IF ERRORLEVEL 2 GOTO ENDWITHERROR
IF ERRORLEVEL 1 GOTO STEP2

Примечание :

  • Да, скрипт работает нормально, это не вопрос вопроса.
  • И да, у меня есть "напечатать" что-то "на моем sql. Файл журнала получает вывод.

Большое спасибо!

Аналогичный вопрос без ответа: Как запустить файл сценария sql с использованием sqlcmd и вывести его в оболочку и файл

Ответы [ 2 ]

2 голосов
/ 24 апреля 2012

Я также не смог найти лучшего способа, чем предложил @Sparky. Следующий код добавляет его предложение:

@echo off

:: this will execute the script into PROCESS.log
sqlcmd -i Scripts\STEP01.sql -o PROCESS.log -S MYSERVER -E -d MYDATABASE

:: this present the contents of PROCESS.log to the screen
echo The result of the query was:
type PROCESS.log

pause
CHOICE /C:YN /M "Is the result accord?"
IF ERRORLEVEL 2 GOTO ENDWITHERROR
IF ERRORLEVEL 1 GOTO STEP2
0 голосов
/ 13 июня 2013

Если вы хотите, вы можете вместо этого использовать powershell и использовать следующее:

sqlcmd -i Scripts\STEP01.sql  -S SERVER -E -d MYDB | Tee-Object -file "PROCESS.log"

Больше информации от Microsoft

...