使用C#和SQL Server 2005以及使用DbConnection.GetSchema()
方法,我想只获取所有表的列(而不是视图)。我找到了两个与此相关的集合名称
Columns
返回表格和视图的列ViewColumns
返回所有视图的列以上两者都不返回表列,也没有任何属性来过滤表列。
任何帮助都得到尊重。
答案 0 :(得分: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
只需将其加载到SqlCommand
并针对您拥有的打开连接执行它,并将结果读入某些DataTable
或其他结构供您使用。这为您提供仅表格列 - 以及所有这些列。