我正在使用Entity Framework。有没有方法从数据库中获取表的列名?
我想显示数据库中的所有列名。
答案 0 :(得分:1)
据我所知,不是直接来自Entity Framework - 但您始终可以对目录视图执行标准的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数据库中的所有列以及它们所属的架构和表。
答案 1 :(得分:1)
此查询类似于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'