Я запускаю несколько операторов вставки и обновления с помощью 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 выводит все сообщения с результатами на экран.
Есть ли какие-либо советы по этому поводу?