public override IList<ForeignKey> GetAllForeignKeys() { string sql = @"SELECT TableName=T.name,ForeignKey=FC.name,ReferenceTableName=R.name,ReferenceKey=RC.name FROM sysforeignkeys F LEFT JOIN " + "sysobjects T ON F.fkeyid=T.id LEFT JOIN sysobjects R ON F.rkeyid=R.id LEFT JOIN " + "syscolumns FC ON F.fkeyid=FC.id AND F.fkey=FC.colid LEFT JOIN syscolumns RC ON F.rkeyid=RC.id AND F.rkey=RC.colid " + "WHERE T.xtype='U' AND R.xtype='U'"; this.Database.Connection.Open(); DataTable foreignKeyTable = this.Database.ExecuteDataTable(sql, false); this.Database.Connection.Close(); List<ForeignKey> keys = new List<ForeignKey>(); ForeignKey foreignKey; foreach (DataRow row in foreignKeyTable.Rows) { foreignKey = new ForeignKey(); foreignKey.TableName = row["TableName"].ToString(); foreignKey.Key = row["ForeignKey"].ToString(); foreignKey.ReferenceTableName = row["ReferenceTableName"].ToString(); foreignKey.ReferenceKey = row["ReferenceKey"].ToString(); keys.Add(foreignKey); } return keys; }
public override IList<ForeignKey> GetAllForeignKeys() { string sql = @"select con.table_name TableName,col.column_name ForeignKey,r.table_name ReferenceTableName,r.column_name ReferenceKey from " + "user_constraints con,user_cons_columns col, (select t2.table_name,t2.column_name,t1.r_constraint_name " + "from user_constraints t1,user_cons_columns t2 where t1.r_constraint_name=t2.constraint_name) r " + "where con.constraint_name=col.constraint_name and con.r_constraint_name=r.r_constraint_name"; this.Database.Connection.Open(); DataTable foreignKeyTable = this.Database.ExecuteDataTable(sql, false); this.Database.Connection.Close(); List<ForeignKey> keys = new List<ForeignKey>(); ForeignKey foreignKey; foreach (DataRow row in foreignKeyTable.Rows) { foreignKey = new ForeignKey(); foreignKey.TableName = row["TableName"].ToString(); foreignKey.Key = row["ForeignKey"].ToString(); foreignKey.ReferenceTableName = row["ReferenceTableName"].ToString(); foreignKey.ReferenceKey = row["ReferenceKey"].ToString(); keys.Add(foreignKey); } return keys; }
public override IList<ForeignKey> GetAllForeignKeys() { this.Database.Connection.Open(); DataTable foreignKeyTable = (this.Database.Connection as OleDbConnection).GetOleDbSchemaTable( OleDbSchemaGuid.Foreign_Keys, null); this.Database.Connection.Close(); if(foreignKeyTable==null||foreignKeyTable.Rows.Count==0) { return new List<ForeignKey>(); } IList<ForeignKey> foreignKeys = new List<ForeignKey>(); ForeignKey foreignKey = null; foreach (DataRow row in foreignKeyTable.Rows) { foreignKey = new ForeignKey(); foreignKey.TableName = row["PK_TABLE_NAME"].AsString(); foreignKey.Key = row["PK_COLUMN_NAME"].AsString(); foreignKey.ReferenceTableName = row["FK_TABLE_NAME"].AsString(); foreignKey.ReferenceKey = row["FK_COLUMN_NAME"].AsString(); foreignKeys.Add(foreignKey); } return foreignKeys; }
public override IList<ForeignKey> GetAllForeignKeys() { string foreignSql = @"SELECT TABLE_NAME,COLUMN_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME<>'PRIMARY' and TABLE_SCHEMA='{0}'"; DataTable foreignKeyTable = GetTable(foreignSql); if (foreignKeyTable == null || foreignKeyTable.Rows.Count == 0) { return new List<ForeignKey>(); } IList<ForeignKey> foreignKeys = new List<ForeignKey>(); ForeignKey foreignKey = null; foreach (DataRow row in foreignKeyTable.Rows) { foreignKey = new ForeignKey(); foreignKey.TableName = row["TABLE_NAME"].AsString(); foreignKey.Key = row["COLUMN_NAME"].AsString(); foreignKey.ReferenceTableName = row["REFRENCED_TABLE_NAME"].AsString(); foreignKey.ReferenceKey = row["REFRENCED_COLUMN_NAME"].AsString(); foreignKeys.Add(foreignKey); } return foreignKeys; }
public override IList<ForeignKey> GetAllForeignKeys() { this.Database.Connection.Open(); DataTable foreignKeyTable = (this.Database.Connection as SQLiteConnection).GetSchema("FOREIGNKEYS"); this.Database.Connection.Close(); if (foreignKeyTable == null || foreignKeyTable.Rows.Count == 0) { return new List<ForeignKey>(); } IList<ForeignKey> foreignKeys = new List<ForeignKey>(); ForeignKey foreignKey = null; foreach (DataRow row in foreignKeyTable.Rows) { foreignKey = new ForeignKey(); foreignKey.TableName = row["TABLE_NAME"].AsString(); foreignKey.Key = row["FKEY_FROM_COLUMN"].AsString(); foreignKey.ReferenceTableName = row["FKEY_TO_TABLE"].AsString(); foreignKey.ReferenceKey = row["FKEY_TO_COLUMN"].AsString(); foreignKeys.Add(foreignKey); } return foreignKeys; }