private void FillKeys() { string strSql = "SELECT I.OWNER,\n" + " I.CONSTRAINT_NAME,\n" + " I.CONSTRAINT_TYPE,\n" + " I.TABLE_NAME,\n" + " I.DELETE_RULE,\n" + " I.STATUS,\n" + " U.COLUMN_NAME,\n" + " U2.TABLE_NAME AS REFTABLE,U2.COLUMN_NAME AS REFCOL\n" + " FROM USER_CONSTRAINTS I\n" + " INNER JOIN USER_CONS_COLUMNS U ON U.CONSTRAINT_NAME = I.CONSTRAINT_NAME\n" + " AND U.OWNER = I.OWNER\n" + " LEFT JOIN USER_CONS_COLUMNS U2 ON U2.constraint_name = I.R_CONSTRAINT_NAME\n" + " WHERE I.TABLE_NAME = :TABLE_NAME \n" + " AND I.CONSTRAINT_TYPE IN ('P', 'R', 'U')"; var param = new Devart.Data.Oracle.OracleParameter("TABLE_NAME", this.Name); DataTable dt = this.Owner.OwnerUser.FillDataTable(strSql, new DbParameter[]{ param }); foreach (DataRow dr in dt.Rows) { Key key = new Key(); var item = Keys.Where(p => p.Name == dr["CONSTRAINT_NAME"].ToString()).FirstOrDefault(); if (item != null) { key = item; Column col = new Column(); col.Name = dr["COLUMN_NAME"].ToString(); key.Columns.Add(col); } else { key.Name = dr["CONSTRAINT_NAME"].ToString(); key.OwnerTable = this; key.Owner = this.Owner; key.KeyType = StringToKeyTypes(dr["CONSTRAINT_TYPE"].ToString()); key.OnDeleteAction = OnDeleteActionEnums.NoAction; key.Enabled = (dr["STATUS"].ToString() == "DISABLED") ? false : true; if (key.KeyType == KeyTypesEnum.Foreign) { key.ReferencingTable = dr["REFTABLE"].ToString(); key.ReferencingColumns = dr["REFCOL"].ToString(); } Column col = new Column(); col.Name = dr["COLUMN_NAME"].ToString(); key.Columns.Add(col); this.Keys.Add(key); } } }
public string GetAlterColumnsSql(bool dropStatment, bool createStatment) { try { string sql = ""; if (dropStatment) { sql += "------Drop Script ---------------\r\n"; sql += "DROP TABLE " + this.Name + ";"; sql += "\r\n"; } if (createStatment) { Key PK = IsPkAvailable(); Column col = new Column(); if (PK != null && PK.Columns.Count > 0) { col = this.Columns.Where(p => p.Name == PK.Columns.FirstOrDefault().Name).FirstOrDefault(); } else { col = Columns.FirstOrDefault(); } sql += "\r\n\r\n---Create Table Statment " + this.CreatePriority.ToString() + "-" + this.Name + Common.NewLine; sql += "CREATE TABLE " + this.Name + "\r\n" + " (\r\n" + " " + col.GetSelfString() + "\r\n);"; sql += "\r\n\r\n---Alter Table " + this.Name + Common.NewLine; foreach (Column item in Columns) { if (item.Name != col.Name) sql += "\r\n" + item.GetSqlString(); } sql += "\r\n\r\n---Create Keys " + this.Name + Common.NewLine; ; foreach (Key item in this.Keys) { sql += "\r\n" + item.GetSqlString(); } } else { sql += "\r\n\r\n---Create Columns " + this.Name + Common.NewLine; ; foreach (Column col in Columns) { sql += "\r\n" + col.GetSqlString(); } sql += "\r\n\r\n---Create Keys " + this.Name + Common.NewLine; ; foreach (Key item in this.Keys) { sql += "\r\n" + item.GetSqlString(); } } return sql; } catch (Exception ex) { return "Hata Oluştu !!! : " + ex.Message; } }