sql - 如何格式化 SQLCMD 输出

标签 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 行中,并将结果正确地显示在下方。

提前致谢。

最佳答案

回答

我们可以设置每列的宽度。

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)

It limits the number of characters that are returned for the large variable length data type

SQLCMDMAXFIXEDTYPEWIDTH(-Y)

Limits the number of characters that are returned for the following data types

注意:设置-y 会严重影响性能。

参见https://learn.microsoft.com/en-us/sql/tools/sqlcmd-utility

关于sql - 如何格式化 SQLCMD 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33738433/

相关文章:

sql - SQL Server 中的小数点四舍五入

date - 比较没有时间的日期

powershell - 使用PowerShell创建自签名证书

mysql - 在简单查询中使用文件排序

sql - JOIN PostgreSQL 中的两个表和 GROUP BY

mysql - 从 mysql 表中的同一列获取计数?

sql - 如何在mongodb上检索空查找条目?

sql-server - 如何在SQL Server 2008中还原非常大的.bak文件(180 GB)

sql-server - SQL Server查询执行计划在已使用的索引上显示错误 "actual row count"并且性能非常慢

powershell - 使用Powershell获取HDD序列号