更改 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
我正在使用 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