将dmo属性映射到smo-方法

问题描述 投票:0回答:1

我已经开发了一种实用工具,可以使用不赞成使用的DMO对象来编写所有SQL Server对象的脚本。我打算升级到SMO,但无法找到相应的属性,例如,在DMO中,Table.getKeys().CountSQLDMO.Key, Table.getKeys()

您能指出一些文档或教程,因为我发现Microsoft网站不是很有用。

我曾尝试用SMO代替DMO,但正如我所说,无法找到某些映射。这是原始DMO代码的一部分:

    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
sql-server smo
1个回答
0
投票

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

为了枚举外键,请按以下方式使用代码段。

 ForeignKeyCollection fk = tbl.ForeignKeys;
  foreach (ForeignKey f in fk)
  {
     Console.WriteLine(f.Columns);
  }

与索引相似。因此,您可以按以下方式使用代码段。

IndexCollection uk = tbl.Indexes;

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

更新-主键

有关主键,请查看代码段。

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

© www.soinside.com 2019 - 2024. All rights reserved.