2009-01-19 27 views
6

Tôi có một câu hỏi nhỏ mà tôi chưa tìm thấy câu trả lời: làm thế nào để tôi nhận được trong C# và sử dụng Microsoft.SqlServer.Smo bảng một cột khoá ngoài được đề cập đến?Cách lấy bàn khóa ngoài có nghĩa là

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

Trả lời

13

Bạn nên bắt đầu từ chính bảng và liệt kê tất cả khóa ngoại của nó. Mã mẫu:

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: Thay đổi nhỏ. Trong foreach foreach thứ hai sử dụng vòng lặp (ForeignKeyColumn cột trong key.Columns) (tôi đã có nó foreach (cột cột trong key.Columns) trước đó, và đó là sai lầm. Sai lầm của tôi.)

Các vấn đề liên quan