在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
在上面的示例中,即使批处理尚未完成,您也可以看到该消息。
Windows 10中是否有配置设置可以恢复此功能?我有遗留的批处理文件,依赖于WITH NOWAIT
来显示进度。
答案 0 :(得分:1)
这是因为sqlcmd11(不确定更高)does not honor RAISERROR WITH NOWAIT。它似乎与底层操作系统无关。
这里是一个link到stackoverflow帖子,其中包含一些可能的解决方法。