更改 SELECT 中的 * 以显示所有列

Change * in SELECT to show all columns

我正在使用 SQL Server Management Studio。

假设我有一个包含 100 个字段的 table,我想显示其中的 75 个,我怎样才能显示所有列,这样我就可以只注释掉我不想要的列?基本上取消嵌套 *...

谢谢!

您可以在对象资源管理器中打开 table 下的列 "folder",然后将文件夹拖到您的查询 window。它将生成带有逗号的整个列列表。格式不正确,因为它将所有列放在一行中,但它有效。

您也可以使用 sys.columns 来提供帮助。这样您就可以将结果复制并粘贴到您的查询中 window.

select name + ', '
from sys.columns
where object_id = object_id('YourTableName')

还有很多第三方工具可以做这种事情。

SSMS 支持 GUI 工具,但如果您不喜欢 GUI,则可以使用以下脚本

declare 
    @table_name varchar(200) = 'Employees',
    @column_sql varchar(max) = 'select ';
select 
    @column_sql = @column_sql + 'T.[' + COLUMN_NAME  + '],'
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME=@table_name;

select left(@column_sql,len(@column_sql)-1) + ' from ' + @table_name + ' T';

在 NorthWind Employee Sample 中将得到以下结果:

select 
T.[EmployeeID],T.[LastName],T.[FirstName],T.[Title],
T.[TitleOfCourtesy],T.[BirthDate],T.[HireDate],
T.[Address],T.[City],T.[Region],T.[PostalCode],
T.[Country],T.[HomePhone],T.[Extension],T.[Photo],
T.[Notes],T.[ReportsTo],T.[PhotoPath] 
from Employees T