我如何从SQL Server中的表中获取列名?
我想查询表中所有列的名称。 我发现如何做到这一点:
但是我需要知道:这怎么能在Microsoft SQL Server(2008在我的情况下)中完成?
通过查询信息模式视图,您可以获得这些信息以及更多信息。
此示例查询:
SELECT *
FROM Northwind.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
。
上一篇: How can I get column names from a table in SQL Server?
下一篇: How does the SQL injection from the "Bobby Tables" XKCD comic work?