Как получить таблицу, к которой относится внешний ключ - PullRequest
6 голосов
/ 19 января 2009

У меня есть небольшой вопрос, на который я еще не нашел ответа: как мне войти в c # и использовать Microsoft.SqlServer.Smo таблицу, к которой относится столбец внешнего ключа?

foreach (Column column in currentTable.Columns) {
        if (column.IsForeignKey) {
                 //GET TABLE FOREIGN KEY REFERS TO
          }
   }

Ответы [ 2 ]

13 голосов
/ 19 января 2009

Вы должны начать с самой таблицы и перечислить все ее внешние ключи. Пример кода:

foreach (ForeignKey key in currentTable.ForeignKeys)
{
    foreach (ForeignKeyColumn column in key.Columns)
    {
        Console.WriteLine("Column: {0} is a foreign key to Table: {1}",column.Name,key.ReferencedTable);
    }
}

РЕДАКТИРОВАТЬ: небольшие изменения. Во втором цикле foreach используйте foreach (столбец ForeignKeyColumn в key.Columns) (раньше он был foreach (столбец Column в key.Columns), и это неправильно. Моя ошибка.)

3 голосов
/ 20 января 2011
...