SQLCMD не печатает сообщения о результатах после того, как первый результат вернул 0 строк - PullRequest
0 голосов
/ 08 апреля 2019

Я запускаю несколько операторов вставки и обновления с помощью sqlcmd в моей базе данных sql-сервера.Когда первый оператор возвращает 0 строк, вывод на экран показывает только 0 затронутых строк, а выходные данные для последовательных сообщений не отображаются, даже если они преуспели в БД.

Когда первый оператор влияет на один илибольше строк все сообщения отображаются.Даже если оператор на 0 строк влияет на более поздний этап сценария.Также пытался использовать точки с запятой в конце каждого оператора.Пробовал с SET NOCOUNT ON.Все к тому же эффекту.Похоже, что ни один из параметров командной строки sqlcmd не работает

Нашел эту статью: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d6c5e90c-0c74-4ab4-b883-7a5ac93c6220/messages-from-sqlcmd?forum=transactsql Не похоже, что это что-то, что они исправили.Я работаю на версии 17.3.0000.1 из Linux.Также попробовал на более старых версиях без везения.

sqlcmd -S myserver,INST01 -i test.sql -d MyDB

вот содержимое моего sql-скрипта:

UPDATE [MissionsDB].[dbo].[People_test] SET Name = 'TEST' WHERE 1=0;
INSERT INTO [dbo].[People_test] (Name) VALUES ('Peter2')
INSERT INTO [dbo].[People_test] (Name) VALUES ('Peter3')
UPDATE [dbo].[People_test] SET Name = 'Peter5' WHERE Name in ('Peter3','Peter1')

И это вывод:

(0 rows affected)

После этого ничего не отображается.

Когда я помещаю первый оператор вставки для выполнения не в первую позицию, то sqlcmd выводит все сообщения с результатами на экран.

Есть ли какие-либо советы по этому поводу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...