0

使用 C# 和 SQL Server 2005 并通过使用DbConnection.GetSchema()方法,我只想获取表的所有列(不是视图)。我找到了两个与此相关的集合名称

  1. Columns 返回表和视图的列
  2. ViewColumns返回视图的所有列

以上两个都不是只返回表列,也没有任何属性来过滤表列。

任何帮助都会受到尊重。

4

1 回答 1

0

我没有看到任何简单的方法可以使用您尝试使用的特定 API 来实现这一点 - 但为什么不直接使用这样的查询来获取您的信息呢?

SELECT
    c.name AS 'ColumName',
    ty.Name AS 'TypeName',
    c.max_length,
    c.is_identity,
    c.is_nullable,
    t.name AS 'TableName'
FROM sys.columns c
INNER JOIN sys.types ty ON c.user_type_id = ty.user_type_id
INNER JOIN sys.tables t ON c.object_id = t.object_id

只需将其加载到 a 中SqlCommand并针对您拥有的打开连接执行它,然后将结果读入某些DataTable或其他结构以供您使用。这只会为您提供表格列 - 以及所有这些列。

于 2011-12-26T09:33:22.033 回答