sqlcmd,带有输出文件和屏幕输出

时间:2012-02-16 21:04:04

标签: sql sql-server-2005 command-line sqlcmd

我用sqlcmd做一些命令行批处理(.bat):

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上有“打印”的东西。日志文件获取输出。

非常感谢!

无回答的类似问题: How to run a sql script file using sqlcmd and output to both shell and file

2 个答案:

答案 0 :(得分:2)

我也找不到更好的方法然后@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

答案 1 :(得分:0)

如果您愿意,可以使用powershell,并使用以下内容:

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

来自Microsoft的更多信息