Как отформатировать вывод SQLCMD
Я использую приведенную ниже командную строку для запуска SQL-запроса с использованием SQLCMD
sqlcmd -S Server -Q "select top 100 * From people" -d people -t 10
Таблица состоит из 20 столбцов, и когда я смотрю на окно командной строки вывода, она переносит текст и затрудняет его чтение.
Я хочу, чтобы мои результаты отображались так же, как они отображаются в SQL Server Management Studio (правильно отформатированы). Я не ищу сеток, но мне нужно, чтобы все мои столбцы отображались в строке 1, а результаты должным образом отображались ниже.
Заранее спасибо.
Ответы
Ответ 1
Ответ
Мы можем установить ширину каждого столбца.
C:/> sqlcmd -S my_server
> :setvar SQLCMDMAXVARTYPEWIDTH 30
> :setvar SQLCMDMAXFIXEDTYPEWIDTH 30
> SELECT * from my_table
> go
Мы также можем установить его так: sqlcmd -S my_server -y 30 -Y 30
.
Подробнее
SQLCMDMAXVARTYPEWIDTH (-y
)
Он ограничивает количество символов, возвращаемых для типа данных большой переменной длины
SQLCMDMAXFIXEDTYPEWIDTH (-Y
)
Ограничивает количество символов, возвращаемых для следующих типов данных
Примечание: настройка -y
имеет серьезные последствия для производительности.
Видеть https://docs.microsoft.com/en-us/sql/tools/sqlcmd-utility
Ответ 2
Проблемы с форматированием обычно появляются из-за окна консоли.
Одним из решений является вывод в файл и использование блокнота/вашего любимого редактора:
sqlcmd -S myServer -d myDB -E -Q "select top 100 * From people"
-o "output.txt"
Ответ 3
Вот как я изолировал скаляр.
sqlcmd -S xxx.xxx.xxx.xxx,xxxxx -d MyDb -U myUser -P MyPassword -h -1 -W -Q "set NOCOUNT ON; select a from b where b.id='c'"