【问题标题】:Resultset column width in Management StudioManagement Studio 中的结果集列宽
【发布时间】:2013-12-06 03:10:29
【问题描述】:

有没有办法在 SQL Server 2005 Management Studio 中更改结果集的列宽?

我有一列包含一个句子,尽管有屏幕空间,但它被截断了。

| foo | foo2 | description |          | foo | foo2 | description         |
|--------------------------|    TO    |----------------------------------|
|  x  |  yz  | An Exampl.. |          |  x  |  yz  | An Example sentence |

我希望能够通过代码设置列大小,以便通过代码将此更改迁移到其他 SSMS 实例。

【问题讨论】:

  • 你的意思是你必须加宽列才能完全查看记录,还是它实际上不包括所有数据,即它设置为 varchar(20) 或其他什么?
  • 数据不会被截断,只是视图(描述字段是 NVARCHAR(MAX))
  • 好吧,您的数据被截断(Management Studio 不会显示完全填充的 NVARCHAR(MAX) 列的所有 2GB 数据)但远远超出视觉限制你的屏幕。

标签: sql sql-server tsql sql-server-2005 ssms


【解决方案1】:

不,每列的宽度是在运行时确定的,在我使用过的任何版本的 Management Studio 中都无法覆盖它。事实上,我认为该算法在 SQL Server 2008 中变得更糟,并且从那以后基本相同 - 您可以运行相同的结果集两次,并且网格在相同的输出中不一致(这是 SQL Server 2014 CTP2):

我在 2008 年报告了这个错误,它被迅速关闭为“不会修复”:

  • SSMS:网格对齐,列宽似乎是任意的(抱歉,没有链接)

如果您想对此进行控制,您必须为 Management Studio 创建一个可以对结果网格进行人工处理的插件,或者您必须编写自己的查询工具。

2016-01-12 更新:这个网格错位问题应该在 Management Studio 的某些版本中得到修复(嗯,UserVoice 项目已经更新,但他们承认它可能仍然不完美,而且我没有看到任何修复的证据)。

2021 年 10 月 13 日更新: 我在 2016 年更新了这个项目,当时微软拔掉了 Connect 并将部分内容迁移到 UserVoice。现在他们也拔掉了 UserVoice,所以我很抱歉必须删除上面的链接,但这个问题在此期间还没有得到解决(刚刚在 SSMS 18.10 中得到验证)。

【讨论】:

  • 现在是 2020 年,这在 SQL Server 18.7.1 中仍然是一个问题。我从来没有在 Windows 7 上遇到过 18.7.1 的问题,但在 Windows 10 上我遇到了。所以我不得不恢复到版本 17 以获得默认情况下不太窄的列宽。 SSMS 急需 UI/UX 大修
  • @KyleVassella 你看过Azure Data Studio吗?这就是未来,我认为您不会看到对 SSMS 的足够投资来完全解决所有 UI/UX 问题。
【解决方案2】:

你如何输出 - 到文本或网格?

如果要发短信,试试这个 - 在 SSMS 中,转到工具,然后是选项...

在选项中,转到查询结果,然后转到 SQL Server。选择结果到文本并查看每列中显示的最大字符数

看看它是否设置得很低,如果扩大它有帮助。进行更改时,您需要启动一个新的查询窗口。现有的窗口似乎没有接受这些变化。

【讨论】:

  • 这适用于实际数据的截断,而不是网格列的可视宽度。
【解决方案3】:

你可以做的是这样的选择字段的别名:

SELECT name as [name        .] FROM ...

空格和点会扩大列宽。

【讨论】:

  • 很好的解决方法。但是,您可以放入括号 [] 中的最大字符数为 128 - 至少这是我在 Management Studio 2012 上看到的
  • 尝试使用 'W' 字符 - 它比空格宽得多。
  • 它仍然有 128 个最大字符限制。我正在使用 SSMS v17.9。
  • 对于“更漂亮”的东西,在别名中使用大写和星号,如 [************************** ****已用时间************************************]
【解决方案4】:

如果您只关心增加屏幕上的列宽以查看该列中的完整文本,您可以执行以下操作:-

1.) 在结果集中

2.) 将鼠标移到要加宽的列的列标题上

3.) 使用鼠标左键只需按住分隔两列的线 ( 正确的一个用于您要扩展的列), 你会看到你的鼠标光标会变成调整模式(垂直 黑线,箭头向左和向右移动)。拖着它 向右或向左增加或减少宽度 分别。

就像我们在 excel 中做的那样,按住并拖动。

【讨论】:

  • 它在 2012 年和 2014 年都有效,我没有在以前的版本上测试过
【解决方案5】:

我也有这个问题。我的解决方案是将结果网格中显示的字体从默认的无衬线非等宽字体更改为等宽字体。

可以通过这种方式更改结果网格上使用的字体:

  1. 导航到工具 -> 选项... 菜单。
  2. 在环境级联菜单中,选择“字体和颜色”。相应的菜单会显示在右侧。
  3. 在“显示设置”下拉菜单中,选择“网格结果”。
  4. 选择等宽的新字体和字体大小。我用过控制台。
  5. 保存查询并退出 Microsoft SQL Management Studio。
  6. 执行输出到网格的查询。等宽字体将正确生成列宽。

【讨论】:

  • 这对我不起作用。它确实使列变大了一点,但没有将其展开以显示所有文本。
【解决方案6】:

结果集列宽调整为标题文本:
选择 [字段名称] 作为 [标题名称,后跟空格               ]
来自...

【讨论】:

    【解决方案7】:

    其实是可以的。

    在 SQL Server Management Studio 中,按工具 > 选项 > 展开左侧的“查询结果”菜单 > 选择“SQL Server” > 在下拉列表中选择“结果到文本”而不​​是“结果到网格” > 按确定并它应该可以工作。

    这里也有图片说明https://social.msdn.microsoft.com/Forums/en-US/9b63d53f-211c-4174-917c-31d9567f2132/ssms-1831-column-width-is-not-auto-sizing?forum=sqlkjmanageability

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多