我想查询一个表的所有列的名称。我发现如何做到这一点:
甲骨文 MySQL PostgreSQL
但我也需要知道:如何在Microsoft SQL Server(在我的情况下是2008年)中做到这一点?
我想查询一个表的所有列的名称。我发现如何做到这一点:
甲骨文 MySQL PostgreSQL
但我也需要知道:如何在Microsoft SQL Server(在我的情况下是2008年)中做到这一点?
当前回答
SELECT column_name, data_type, character_maximum_length, table_name,ordinal_position, is_nullable
FROM information_schema.COLUMNS WHERE table_name LIKE 'YOUR_TABLE_NAME'
ORDER BY ordinal_position
其他回答
SELECT c.Name
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.object_id = OBJECT_ID('TABLE_NAME')
ORDER BY c.Name
您可以通过查询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('[yourSchemaType].[yourTableName]')
这将在一个列中提供所有列名。 如果您关心其他元数据,可以将SELECT语句编辑为SELECT *。
在SQL Server 2008中可以使用sp_help。
sp_help <table_name>;
以上命令的键盘快捷键:选择表名(即突出显示它)并按ALT+F1。
SELECT TOP (0) [toID]
,[sourceID]
,[name]
,[address]
FROM [ReportDatabase].[Ticket].[To]
简单,不需要任何系统表