How to get the table a foreign key refers to

天大地大妈咪最大 提交于 2020-01-11 05:23:09

问题


I have an small question I didn't found an answer yet: how do I get in c# and using Microsoft.SqlServer.Smo the table a foreign key column is referring to?

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

回答1:


You should start from the table itself, and enumerate all of it's foreign keys. Sample code:

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);
    }
}

EDIT: Small change. In second foreach loop use foreach (ForeignKeyColumn column in key.Columns) (I had it foreach (Column column in key.Columns) before, and that's wrong. My mistake.)




回答2:


use SMO dll

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



来源:https://stackoverflow.com/questions/458913/how-to-get-the-table-a-foreign-key-refers-to

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!