如何从数据库中获取列名?

时间:2013-04-09 05:57:57

标签: entity-framework

我正在使用Entity Framework。有没有方法从数据库中获取表的列名?

我想显示数据库中的所有列名。

2 个答案:

答案 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'