如何格式化SQLCMD输出

时间:2015-11-16 15:04:07

标签: sql sql-server powershell sqlcmd

我使用下面的命令行来使用SQLCMD

运行SQL查询
sqlcmd -S Server -Q "select top 100 * From people" -d people -t 10 

该表有20列,当我查看输出命令行窗口时,包装文本并使其难以阅读。

我希望我的结果显示方式与 SQL Server Management Studio (格式正确)中显示的结果相同。我不是在寻找任何网格,但是我需要在第1行显示所有列,并将结果正确地显示在下面。

提前致谢。

3 个答案:

答案 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'"