1

我正在使用实体框架。有什么方法可以从数据库中获取表的列名吗?

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

4

2 回答 2

1

据我所知,不是直接来自实体框架 - 但您始终可以对目录视图执行标准 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 数据库中的所有列,以及它们所属的架构和表。

于 2013-04-09T06:08:39.917 回答
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'
于 2013-04-09T07:52:08.353 回答