SQLCMD 在第一个结果返回 0 行后不打印结果消息



我正在使用sqlcmd在我的sql服务器数据库中运行一些插入和更新语句。当第一个语句返回 0 行时,屏幕的输出仅显示受影响的 0 行,即使连续消息在数据库中成功,也不会显示连续消息的输出。

当第一条语句影响一行或多行时,将显示所有消息。即使脚本的稍后阶段发生了 0 行受影响的语句。还尝试在每个语句的末尾使用分号。已尝试将"无计数"设置为打开。都达到相同的效果。sqlcmd 的所有命令行参数似乎都不起作用

找到这篇文章: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/d6c5e90c-0c74-4ab4-b883-7a5ac93c6220/messages-from-sqlcmd?forum=transactsql 看起来这不是他们修复的问题。我正在运行Linux的17.3.0000.1版本。也在旧版本上尝试过,但没有运气。

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 会将所有结果消息打印到屏幕上。

对此有什么建议吗?

我刚刚遇到了同样的问题。事实证明,这是由于使用了旧版本的sqlcmd。要查看您正在运行的版本,请使用:

sqlcmd -?

我不确定哪个版本解决了这个问题,但是版本 10.50.2500.0 有您描述的问题,而版本 15.0.1300.359 没有。

最新更新