Acme.PROJECTNAME.Install.SqlServers.GetSqlForForeignKeys C# (CSharp) Метод

GetSqlForForeignKeys() приватный статический Метод

private static GetSqlForForeignKeys ( string parentTable, string childTable, string constraintName ) : string
parentTable string
childTable string
constraintName string
Результат string
		private static string GetSqlForForeignKeys(string parentTable, string childTable, string constraintName)
		{
			StringBuilder sb = new StringBuilder();
			sb.Append(" DECLARE @FKeys TABLE ");
			sb.Append(" ( ");
			sb.Append(" parentTable varchar(100) NOT NULL, ");
			sb.Append(" 	childTable varchar(100) NOT NULL, ");
			sb.Append(" 	childColumn varchar(100) NOT NULL, ");
			sb.Append(" 	constid int NOT NULL, ");
			sb.Append(" 	keyno smallint NOT NULL ");
			sb.Append(" ) ");
			sb.Append(" DECLARE @PKeys TABLE ");
			sb.Append(" ( ");
			sb.Append(" parentTable varchar(100) NOT NULL, ");
			sb.Append(" childTable varchar(100) NOT NULL, ");
			sb.Append(" parentColumn varchar(100) NOT NULL, ");
			sb.Append(" constid int NOT NULL, ");
			sb.Append(" 	keyno smallint NOT NULL ");
			sb.Append(" ) ");
			sb.Append(" INSERT INTO @FKeys  ");
			sb.Append(" SELECT DISTINCT  ");
			sb.Append(" parent.name parentTable,  ");
			sb.Append(" child.name childTable,  ");
			sb.Append(" syscolumns.name as childColumn,   ");
			sb.Append(" sysforeignkeys.constid,  ");
			sb.Append(" sysforeignkeys.keyno  ");
			sb.Append(" FROM   ");
			sb.Append(" sysforeignkeys   ");
			sb.Append(" inner join sysobjects child on fkeyid = child.id   ");
			sb.Append(" inner join sysobjects parent on rkeyid = parent.id   ");
			sb.Append(" inner join syscolumns on syscolumns.id = sysforeignkeys.fkeyid AND syscolumns.colorder = sysforeignkeys.fkey   ");
			sb.Append(" INSERT INTO @PKeys  ");
			sb.Append(" SELECT   ");
			sb.Append(" parent.name parentTable,  ");
			sb.Append(" child.name childTable,  ");
			sb.Append(" syscolumns.name as parentColumn,  ");
			sb.Append(" sysforeignkeys.constid,  ");
			sb.Append(" sysforeignkeys.keyno ");
			sb.Append(" FROM   ");
			sb.Append(" sysforeignkeys inner join sysobjects child on fkeyid = child.id   ");
			sb.Append(" inner join sysobjects parent on rkeyid = parent.id   ");
			sb.Append(" inner join syscolumns on syscolumns.id = sysforeignkeys.rkeyid AND syscolumns.colorder = sysforeignkeys.rkey   ");
			sb.Append(" SELECT p.parentTable ,p.parentColumn, f.childTable, f.ChildColumn , so.name as roleName FROM @FKeys f INNER JOIN @PKeys p on f.constid=p.constID and f.keyno=p.keyno INNER JOIN sysobjects so on so.id = p.constid  ");
			sb.Append("WHERE f.parentTable = '").Append(parentTable).Append("' AND f.childTable = '").Append(childTable).Append("'");
			sb.Append(" AND so.name = '" + constraintName + "'");
			sb.Append(" order by p.constid ");
			return sb.ToString();
		}