首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将dmo属性映射到smo - How

将dmo属性映射到smo - How
EN

Stack Overflow用户
提问于 2019-10-02 20:41:48
回答 1查看 89关注 0票数 0

我已经开发了一个实用程序来使用废弃的DMO对象编写所有SQL Server对象的脚本。我打算升级到SMO,但找不到相应的属性,例如,在DMO中,我们有Table.getKeys().CountSQLDMO.Key, Table.getKeys()

你能给我推荐一些文档或教程吗?因为我发现微软的网站并不是很有用。

我试图用SMO替换DMO,但正如我所说的,无法找到一些映射。以下是原始DMO代码的一部分:

代码语言:javascript
复制
    If TB.getKeys().Count > 0 Then
        For Each k As SQLDMO.Key In TB.getKeys()
        KName = k.Name
        Select Case k.Type
        Case SQLDMO.SQLDMO_KEY_TYPE.SQLDMOKey_Primary, sqlMO.SQLDMO_KEY_TYPE.SQLDMOKey_Unique
        kExt = ".PKY"
        Case SQLDMO.SQLDMO_KEY_TYPE.SQLDMOKey_Foreign
        kExt = ".FKY"
        End Select
EN

回答 1

Stack Overflow用户

发布于 2019-10-02 21:24:35

没有这样的映射!但是,您可以稍微修改代码。

为了枚举外键,请使用如下代码段。

代码语言:javascript
复制
 ForeignKeyCollection fk = tbl.ForeignKeys;
  foreach (ForeignKey f in fk)
  {
     Console.WriteLine(f.Columns);
  }

索引也是如此。因此,您可以按如下方式使用该代码段。

代码语言:javascript
复制
IndexCollection uk = tbl.Indexes;

            foreach (Index i in uk)
            {
                Console.WriteLine(i.Name + ' ' + i.IsClustered + ' ' + i.IsUnique);
            }

已更新-主键

对于主键,请查看代码片段。

代码语言:javascript
复制
ColumnCollection cols = tbl.Columns;

            foreach (Column c in cols)
            {
                Console.WriteLine(c.InPrimaryKey);
            }

互联网上没有很好的资源。但是你可以试试这个

Programming SQL Server with SQL Server Management Objects Framework

还有这张

Converting a Database to In-Memory OLTP

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58201730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档