我想查询表中所有列的名称。我发现如何做到这一点:
但是我还需要知道:如何在 Microsoft SQL Server (以我的情况为 2008)中完成此操作?
您可以通过查询 Information Schema 视图获得此信息,甚至更多。
此示例查询:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'
可以在所有这些数据库对象上进行:
您可以使用存储过程 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