c# - 使用 C# 检索表架构信息

标签 c# sql

我想使用 C# 检索表架构信息。

我使用了 sp_help <table_name>查询来检索它,当我在查询窗口中执行它但无法从 C# 检索它时效果很好。我想检索两个表之间映射所需的所有表信息,例如名称、数据类型、大小、isprimary、键等。

我写下了下面的代码

SqlCommand cmd = sourceCon.CreateCommand();
cmd.CommandText = string.Format("sp_help '{0}'", cmbSourceTable.SelectedItem.ToString()); //cmd.CommandType = CommandType.StoredProcedure; 
sourceDataTable = new DataTable(); 
SqlDataReader dr = cmd.ExecuteReader(); 
sourceDataTable.Load(dr);
dr.Close(); 

它只会返回有关表创建与否的信息

最佳答案

您可以尝试以下选项而不是使用 sp_help:

1) 使用 INFORMATION_SCHEMA.COLUMNS View :

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'YourTable'

2) 查询sys.columns

SELECT c.*, t.name
FROM sys.columns c
    JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE c.object_id = OBJECT_ID('YourTable')

这些只是将返回单个结果集的 2 个选项。 INFORMATION_SCHEMA.COLUMNS 不会告诉您(例如)列是否为 IDENTITY 列,而 sys.columns 路由会。您可以从目录 View 中获得更多信息,这取决于您还需要什么。这是 MSDN reference .

关于c# - 使用 C# 检索表架构信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8257319/

相关文章:

c# - Mvc 在隐藏字段中覆盖我的 ID

sql - 如何动态更新 Ruby on Rails 中的列

c# SELECT 与 FOR JSON

sql - 何时向 SQL 表添加索引?

c# - asp.net core 2.0 模型验证不验证数据

c# - .NET C# "The remote certificate is invalid according to the validation procedure"

c# - 从 SQLITE PCL 获取特定月份的计数

sql - 在 SQL Server 中使用 LAG() 和 LEAD() 函数时是否可以忽略 NULL 值?

c# - 如何制作粉红噪声发生器?

c# - MySQL 查询的 StringBuilder 空检查