tags:

views:

858

answers:

2

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
          }
   }
+5  A: 

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.)

BFree
A: 

But is it for ADO.NET table. How can i get information of SQL tables?

Foysal