Sqlcmd: опции -h и -y 0 являются взаимоисключающими? - PullRequest
0 голосов
/ 23 ноября 2018

У нас есть старый пакетный файл (.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."

Пара вопросов:

  • Почему этот сценарий происходит на сервере Windows Server 2016, а не на сервере Windows Server 2012?Я не могу найти какую-либо документацию или информацию о том, что опции -h и -y0 являются взаимоисключающими?
  • Если опции -h и -y 0 теперь являются взаимоисключающими, означает ли это, что -y0 официально подавит заголовок так же, как -h?Т.е. мы можем удалить часть кода «-h-1» и ожидать того же результата только с «-y0»?

Версии SQL Server для разных серверов:

  • Версия SQL Server в Windows Server 2012: 11.0.7462.6

  • Версия SQL Server в Windows Server 2016: 13.0.52.16.0

1 Ответ

0 голосов
/ 23 ноября 2018

Как я уже упоминал в своем комментарии, самый простой способ выяснить, дает ли один из переключателей один и тот же вывод, - это провести собственное тестирование.Я протестировал это на 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)

Обратите внимание, что в отступе есть небольшая разница.Я не знаю, как выглядел ваш вывод раньше, но я подозреваю, что один из них повторяет вывод, который вы имели раньше.

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