Windows 10 скрывает сообщения RAISERROR WITH NOWAIT в командном файле

В Windows 10 кажется, что все RAISERROR WITH NOWAIT сообщения, вызываемые из sqlcmd, теперь скрыты в командной строке до завершения пакета:

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

( нет вывода на консоль, пока waitfor закончено)

Сравните это с той же командой, запущенной из 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 показать прогресс.

1 ответ

Решение

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

Вот ссылка на публикацию stackru с некоторыми возможными обходными путями.

Другие вопросы по тегам