我已经开发了一个实用程序来使用废弃的DMO对象编写所有SQL Server对象的脚本。我打算升级到SMO,但找不到相应的属性,例如,在DMO中,我们有Table.getKeys().Count、SQLDMO.Key, Table.getKeys()
你能给我推荐一些文档或教程吗?因为我发现微软的网站并不是很有用。
我试图用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发布于 2019-10-02 21:24:35
没有这样的映射!但是,您可以稍微修改代码。
为了枚举外键,请使用如下代码段。
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
还有这张
https://stackoverflow.com/questions/58201730
复制相似问题