我想查询一个表的所有列的名称。我发现如何做到这一点:

甲骨文 MySQL PostgreSQL

但我也需要知道:如何在Microsoft SQL Server(在我的情况下是2008年)中做到这一点?


当前回答

只需运行这个命令

EXEC sp_columns 'Your Table Name'

其他回答

只需运行这个命令

EXEC sp_columns 'Your Table Name'
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'

这比从sys。列,因为它直接显示DATA_TYPE。

您可以通过查询information Schema视图获得这些信息以及更多信息。

这个示例查询:

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'

可以在所有这些DB对象上创建:

CHECK_CONSTRAINTS COLUMN_DOMAIN_USAGE COLUMN_PRIVILEGES 列 CONSTRAINT_COLUMN_USAGE CONSTRAINT_TABLE_USAGE DOMAIN_CONSTRAINTS 域 KEY_COLUMN_USAGE 参数 REFERENTIAL_CONSTRAINTS 例程 ROUTINE_COLUMNS 图式 TABLE_CONSTRAINTS TABLE_PRIVILEGES 表 VIEW_COLUMN_USAGE VIEW_TABLE_USAGE 的观点

SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('TABLE_NAME')

TABLE_NAME是你的表

这个SO问题缺少以下方法:

-- List down all columns of table 'Logging'
select * from sys.all_columns where object_id = OBJECT_ID('Logging')