2016-12-22 9 views
1

В Windows 10, кажется, что все RAISERROR WITH NOWAIT сообщения, вызываемые из SQLCMD теперь скрыты в командной строке, пока партия не будет полным: недля Windows 10 скрывает RAISERROR С 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, чтобы показать прогрессию.

+2

Пожалуйста, пожалуйста, узнайте, как копировать и вставлять текст из окна командной строки ... Мобильные пользователи и те, у кого есть нарушения зрения, говорят о действительно невежливых вещах о вас прямо сейчас. Ни один из ваших изображений не был необходим, чтобы продемонстрировать проблему, с которой вы сталкиваетесь. Изображения должны быть в последнем случае, когда нет другого способа продемонстрировать проблему, а в командных окнах отображается простой текст, который очень легко копировать и вставлять, особенно с улучшениями, внесенными в Windows 10. –

+0

Изображения были опубликованы, чтобы продемонстрировать поведение который не подлежит проверке с копированием и вставкой текста из окна команд. – 8kb

+0

Пробовал ваш пример заявления на Win 2008 R2 + MSSQL 2012, не может воспроизвести. Наблюдаемое поведение согласуется с тем, что вы видите в Windows 10. –

ответ

1

Это происходит потому, что sqlcmd11 (не уверен, что выше) does not honor RAISERROR WITH NOWAIT. Кажется, он не имеет ничего общего с базовой ОС.

Вот link в сообщение stackoverflow с некоторыми возможными обходами.