6

我有一个小问题我还没有找到答案:我如何在 c# 中使用 Microsoft.SqlServer.Smo 获取外键列所指的表?

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

2 回答 2

13

您应该从表本身开始,并枚举它的所有外键。示例代码:

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(key.Columns中的ForeignKeyColumn列)(我之前有foreach(key.Columns中的列),这是错误的。我的错误。)

于 2009-01-19T19:55:51.593 回答
3

使用 SMO dll

http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.table.aspx

于 2011-01-20T17:59:03.080 回答