我们有一个旧的批处理文件(.bat文件),其中包含以下sqlcmd代码:
sqlcmd -S SERVER_NAME -d DB_NAME -I -Q "SELECT COUNT(*) FROM TableName WHERE ColumnName = 'SpecificValue'" -h-1 -k2 -y0
此代码已在Windows Server 2012上运行多年,没有任何问题。现在,我们正在使用Windows Server 2016迁移到新服务器,并且上面的sqlcmd代码不再起作用并返回以下消息:
"Sqlcmd: The -h and the -y 0 options are mutually exclusive."
几个问题:
SQL Server版本不同的服务器:
SQL Server版本:11.0.7462.6
SQL Server版本:13.0.52.16.0
答案 0 :(得分:0)
正如我在评论中提到的那样,找出是否仅使用其中一个开关提供相同输出的最简单方法是进行实际测试。我在Windows(Version 14.0.3026.27 NT
)和Ubuntu(Version 17.2.0000.1 Linux
)上都进行了测试,以完成测试,并得到以下结果:
Windows:
PS Z:\> sqlcmd -S "srvsql2012dev\Sandbox" -E -Q "SELECT 1 AS One;" -h-1 -y0
Sqlcmd: The -h and the -y 0 options are mutually exclusive.
PS Z:\> sqlcmd -S "srvsql2012dev\Sandbox" -E -Q "SELECT 1 AS One;" -h-1
1
(1 rows affected)
PS Z:\> sqlcmd -S "srvsql2012dev\Sandbox" -E -Q "SELECT 1 AS One;" -y0
1
(1 rows affected)
Ubuntu:
larnu@qebui:~$ sqlcmd -S "localhost" -U larnu -Q "SELECT 1 AS One;" -h-1 -y0
Sqlcmd: The -h and the -y 0 options are mutually exclusive.
larnu@qebui:~$ sqlcmd -S "localhost" -U larnu -Q "SELECT 1 AS One;" -h-1
Password:
1
(1 rows affected)
larnu@qebui:~$ sqlcmd -S "localhost" -U larnu -Q "SELECT 1 AS One;" -y0
Password:
1
(1 rows affected)
请注意,缩进略有不同。我不知道您的输出以前是什么样子,但是我怀疑其中之一会复制您以前的输出。