Sql server 将dmo属性映射到smo-How
我开发了一个实用程序,可以使用不推荐的DMO对象为所有SQL Server对象编写脚本。我打算升级到SMO,但无法找到相应的属性,例如,在DMO中,我们有Sql server 将dmo属性映射到smo-How,sql-server,smo,Sql Server,Smo,我开发了一个实用程序,可以使用不推荐的DMO对象为所有SQL Server对象编写脚本。我打算升级到SMO,但无法找到相应的属性,例如,在DMO中,我们有 Table.getKeys().Count,SQLDMO.Key,Table.getKeys() 你能给我指一些文档或教程吗?因为我发现微软的网站不是很有用 我试图用SMO替换DMO,但正如我所说的,无法找到一些映射。以下是一段原始DMO代码: If TB.getKeys().Count > 0 Then For
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
没有这样的映射!但是,您可以稍微修改代码 要枚举外键,请使用以下代码段
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);
}
索引也是如此。因此,您可以按如下方式使用代码段
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);
}
互联网上没有很好的资源。
但是你可以试试这个
这个呢
谢谢,主键呢?