使用 C# 和 SQL Server 2005 并通过使用DbConnection.GetSchema()
方法,我只想获取表的所有列(不是视图)。我找到了两个与此相关的集合名称
Columns
返回表和视图的列ViewColumns
返回视图的所有列
以上两个都不是只返回表列,也没有任何属性来过滤表列。
任何帮助都会受到尊重。
使用 C# 和 SQL Server 2005 并通过使用DbConnection.GetSchema()
方法,我只想获取表的所有列(不是视图)。我找到了两个与此相关的集合名称
Columns
返回表和视图的列ViewColumns
返回视图的所有列以上两个都不是只返回表列,也没有任何属性来过滤表列。
任何帮助都会受到尊重。
我没有看到任何简单的方法可以使用您尝试使用的特定 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
或其他结构以供您使用。这只会为您提供表格列 - 以及所有这些列。