Objectivo: Determinar o nome da tabela que está a ser referenciada a partir de uma chave externa
Ferramentas: SQL Server Management Objects (SMO)
Principais objectos e propriedades: Table, Table.ForeignKeys, Column, ForeignKey, ForeignKeyColumn
Notas:
- chave primária e foreign key não composta
Código
private static string GetReferencedTableName(Table table, Column column)
{
Column c2 = new Column();
bool exists = false;
string referencedTable = "";
foreach (ForeignKey ffk in table.ForeignKeys)
{
foreach (ForeignKeyColumn fc in ffk.Columns)
{
c2 = table.Columns[fc.Name];
if (c2.ID == column.ID)
{
exists = true;
break;
}
}
if (exists)
{
referencedTable += ffk.ReferencedTable;
break; // not considering composite FK
}
}
return referencedTable;
}
Deixe um comentário