在SQL Server中,如何减少使用Select Top 1000 Rows时显示的列数?

时间:2018-01-03 21:02:42

标签: sql-server tsql

当我在数据库中的一个表上使用Select Top 1000 Rows功能(右键单击表格)时,它只显示10列。但是,当我使用SELECT * FROM ...时,将显示所有17列。

这种现象似乎没有发生在任何其他表格中。我们有一个包含超过150列的表,这些表都使用Select Top 1000 Rows功能显示。我们的DBA正在度假,有人知道这是如何实现的吗?

提前谢谢。

1 个答案:

答案 0 :(得分:9)

一般情况下这是不可能的。

当表格包含SPARSE列时,它会在设计上发生,这可能会解释您的17-> 10示例。

e.g。

CREATE TABLE T1  
    (
    Id INT PRIMARY KEY,
    C1 INT SPARSE NULL,
    C2 INT SPARSE NULL,
    C3 INT SPARSE NULL
    )

然后使用SELECT TOP 1000 Rows选项生成此内容。

/****** Script for SelectTopNRows command from SSMS  ******/
SELECT TOP (1000) [Id]
  FROM [tempdb].[dbo].[T1]

您可以删除列列表,只需拖动列文件夹即可获得完整列表。

enter image description here

在你的情况下,我相信你想要相反。 不要将列更改为稀疏以获得此行为!您可以使用您感兴趣的150列的子集创建一个视图。