【问题标题】:Enumerating table columns using Microsoft.SqlServer.Management.Smo使用 Microsoft.SqlServer.Management.Smo 枚举表列
【发布时间】:2013-08-07 19:33:54
【问题描述】:

亲爱的数据空间领主,如果有人在听我的请求,

我的代码是这样的,

string ConnectionString = "Data Source=AServerName;Initial Catalog=ADBName;Integrated Security=SSPI;";
string TableName = "ATableName";
string SchemaName = "dbo";

Server server = new Server(new ServerConnection(new SqlConnection(ConnectionString)));
SqlConnectionStringBuilder connectionStringBuilder = new SqlConnectionStringBuilder(ConnectionString);
Database db = new Database(server, connectionStringBuilder.InitialCatalog);
db.Refresh();

Table _table = new Table(db, TableName, SchemaName);
_table.Refresh();

它通过了身份验证/授权,但_table.columns.Count 为零,虽然db.Tables.Count 具有良好的价值,所以我想知道如何填充_table

请帮忙,谢谢。

如果有任何细节遗漏或任何问题,请随时告诉我。

【问题讨论】:

    标签: sql-server smo


    【解决方案1】:

    一旦您获得Database,只需检查它的.Tables 属性:

    Database db = new Database(server, connectionStringBuilder.InitialCatalog);
    db.Refresh();
    
    foreach(var table in db.Tables)
    {
       // do something with each table here...
       string tableName = table.Name;
    
       foreach(var column in table.Columns)
       {
           // do something with each column for that table
           string columnName = column.Name;
       }
    }
    

    【讨论】:

    • 非常感谢您的帮助,我发现代码没问题,问题是我正在查看的数据库没有表格,非常抱歉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 2020-07-25
    • 2013-03-25
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    相关资源
    最近更新 更多