【问题标题】:sqlcmd with output file and screen output带有输出文件和屏幕输出的 sqlcmd
【发布时间】:2012-03-08 07:23:55
【问题描述】:

我以这种方式使用 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

【问题讨论】:

  • 如果日志不是太大,您总是可以在暂停之前将 TYPE PROCESS.LOG 添加到 BAT 文件中。不知道这是否会有所帮助,也不知道有什么方法可以同时获得文件和屏幕输出...

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


【解决方案1】:

我也找不到比@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

【讨论】:

  • 您可以在此链接linklink 获得有关命令重定向的更多信息。
【解决方案2】:

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

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

更多信息来自Microsoft

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多