协慌网

登录 贡献 社区

如何从 SQL Server 中的表中获取列名?

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

但是我还需要知道:如何在 Microsoft SQL Server (以我的情况为 2008)中完成此操作?

答案

您可以使用存储过程 sp_columns,该存储过程将返回与给定表的所有列有关的信息。可以在这里找到更多信息http://msdn.microsoft.com/en-us/library/ms176077.aspx

您也可以通过 SQL 查询来做到这一点。这样的事情应该有所帮助:

SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName')

或一个变化将是:

SELECT   o.Name, c.Name
FROM     sys.columns c 
         JOIN sys.objects o ON o.object_id = c.object_id 
WHERE    o.type = 'U' 
ORDER BY o.Name, c.Name

这将从所有表中获取所有列,并按表名和列名排序。

select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='tableName'

这比从sys.columns获取更好,因为它直接DATA_TYPE