【问题标题】:How would I get a list of column name & data type for each column in a table in .NET?如何获取.NET 表中每一列的列名和数据类型列表?
【发布时间】:2014-08-26 15:03:44
【问题描述】:

假设我在 SQL Server 2008 R2 中有一个名为 TABLE1 的表。从此表中,我想以编程方式获取 C# 或 VB.NET 中的列列表及其数据类型。本质上类似于执行“sp_help TABLE1”。有什么建议吗?

【问题讨论】:

    标签: c# sql sql-server vb.net


    【解决方案1】:
    SELECT c.*
    FROM information_schema.columns c
    WHERE c.table_schema = 'dbo'    --or whatever
    AND c.table_name = 'yourTable'
    ORDER BY c.ORDINAL_POSITION
    

    【讨论】:

      【解决方案2】:

      遗憾的是,信息架构视图遗漏了很多重要信息。看看这个链接。

      您将获得更详细的信息,而不是查询 sys 目录。

      【讨论】:

      • 当我看到这个时我的第一个想法是“是的,但是 INFORMATION_SCHEMA.* 符合 ANSI”。亚伦对辩论的看法非常有趣。他清楚地解决了我的“是的,但是……”的论点。感谢您的链接!
      • ANSI 合规性真的那么重要吗?我的意思是实际上我们不只是一直在更改 DBMS。我喜欢使用可用于我正在使用的系统的工具。如果这意味着我可以通过不 100% 合规来提高少量性能或可用性,那就这样吧。
      • 不,这没什么大不了的。作为一名 dba,我几乎只使用 SQL Server 很长时间了。而且我不是在寻找另一个 RDBMS 供应商的职业转变。 :) 不过,这对开发人员来说可能更重要。有时他们必须支持多个 RDBMS...
      【解决方案3】:

      试试这个查询。

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

      【讨论】:

      • DMason 打败了你。谢谢!
      猜你喜欢
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-06
      • 2011-08-04
      • 2021-02-25
      相关资源
      最近更新 更多