Windows 10在批处理文件

时间:2016-12-22 01:09:31

标签: sql-server batch-file windows-10 sqlcmd

在Windows 10中,似乎从sqlcmd调用的所有RAISERROR WITH NOWAIT消息现在都隐藏在命令提示符中,直到批处理完成:

> sqlcmd -Q "raiserror('Test message', 10, 1) with nowait; waitfor delay '00:00:05'" -b -r1

no output to console直到waitfor is finished

将此与从Windows 2008 R2运行的同一命令进行比较:

> sqlcmd -Q "raiserror('Test message', 10, 1) with nowait; waitfor delay '00:00:05'" -b -r1
Test message

immediate output

在上面的示例中,即使批处理尚未完成,您也可以看到该消息。

Windows 10中是否有配置设置可以恢复此功能?我有遗留的批处理文件,依赖于WITH NOWAIT来显示进度。

1 个答案:

答案 0 :(得分:1)

这是因为sqlcmd11(不确定更高)does not honor RAISERROR WITH NOWAIT。它似乎与底层操作系统无关。

这里是一个link到stackoverflow帖子,其中包含一些可能的解决方法。