Если у вас есть права администратора.Вы можете получить результат из запроса ниже.
SELECT
K_Table = FK.TABLE_NAME,
FK_Column = CU.COLUMN_NAME,
PK_Table = PK.TABLE_NAME,
PK_Column = PT.COLUMN_NAME,
Constraint_Name = C.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
INNER JOIN (
SELECT i1.TABLE_NAME, i2.COLUMN_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
) PT ON PT.TABLE_NAME = PK.TABLE_NAME
Where FK.TABLE_NAME = YourtableName
Вы можете использовать приведенный ниже код в вашем коде
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(@"Connection String");
con.Open();
string str = "SELECT ";
str+= " K_Table = FK.TABLE_NAME,";
str+= " FK_Column = CU.COLUMN_NAME,";
str+= " PK_Table = PK.TABLE_NAME,";
str+= " PK_Column = PT.COLUMN_NAME,";
str+= " Constraint_Name = C.CONSTRAINT_NAME";
str+= " FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C";
str+= " INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME";
str+= " INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME";
str+= " INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME";
str+= " INNER JOIN (";
str+= " SELECT i1.TABLE_NAME, i2.COLUMN_NAME";
str+= " FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1";
str+= " INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME";
str+= " WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'";
str+= " ) PT ON PT.TABLE_NAME = PK.TABLE_NAME";
str+= " Where FK.TABLE_NAME = 'f'";
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(str, con);
System.Data.SqlClient.SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
}