private static string GetSqlForRelationships(string tableName)
{
var sb = new StringBuilder();
sb.Append("SELECT DISTINCT parent.name as Parent, child.name as Child, ");
sb.Append("case when parent.name = '").Append(tableName).Append("' then 'parent' else 'child' end as rolePlayed, ");
sb.Append("relation.name as constraintName, ");
sb.Append("roleNameProvider.value as roleName ");
sb.Append("FROM sysforeignkeys inner join sysobjects relation on constid = relation.id ");
sb.Append("inner join sysobjects child on fkeyid = child.id inner join sysobjects parent on rkeyid = parent.id ");
sb.Append("inner join sysproperties roleNameProvider on roleNameProvider.id = relation.id ");
sb.Append("WHERE parent.name = '" + tableName + "' OR child.name='" + tableName + "'");
return sb.ToString();
}