我已经开发了一种实用工具,可以使用不赞成使用的DMO对象来编写所有SQL Server对象的脚本。我打算升级到SMO,但无法找到相应的属性,例如,在DMO中,Table.getKeys().Count
,SQLDMO.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
没有这样的映射!但是,您可以略微修改您的代码。
为了枚举外键,请按以下方式使用代码段。
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
和这一个