我使用下面的命令行来使用SQLCMD
运行SQL查询sqlcmd -S Server -Q "select top 100 * From people" -d people -t 10
该表有20列,当我查看输出命令行窗口时,包装文本并使其难以阅读。
我希望我的结果显示方式与 SQL Server Management Studio (格式正确)中显示的结果相同。我不是在寻找任何网格,但是我需要在第1行显示所有列,并将结果正确地显示在下面。
提前致谢。
答案 0 :(得分:8)
我们可以设置每列的宽度。
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
答案 1 :(得分:3)
由于您的控制台窗口,通常会弹出格式问题。 一种解决方案是输出到文件并使用记事本/您最喜欢的编辑器:
sqlcmd -S myServer -d myDB -E -Q "select top 100 * From people"
-o "output.txt"
答案 2 :(得分:0)
这就是我隔离标量的方法。
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'"