我正在使用实体框架。有什么方法可以从数据库中获取表的列名吗?
我想显示数据库中的所有列名。
据我所知,不是直接来自实体框架 - 但您始终可以对目录视图执行标准 T-SQL 查询:
SELECT
ColumnName = c.Name,
SchemaName = s.Name,
TableName = t.Name
FROM
sys.columns c
INNER JOIN
sys.tables t ON c.object_id = t.object_id
INNER JOIN
sys.schemas s ON t.schema_id = s.schema_id
这将为您提供当前 SQL Server 数据库中的所有列,以及它们所属的架构和表。
此查询类似于 marc_s 的查询,但使用sys.objects
而不是sys.tables
. 系统表sys.tables
包含很多隐藏的 JOIN 语句,所以这个查询应该更快——
SELECT
column_name = c.name,
table_name = s.name + '.' + o.name
FROM sys.columns c
JOIN sys.objects o ON c.object_id = o.object_id
JOIN sys.schemas s ON o.schema_id = s.schema_id
WHERE o.type = 'U'