public static void HandleChange(IDatabaseService database, string tablename, EJ.DBColumn originalColumn) { tablename = tablename.ToLower(); var column = (EJ.DBColumn)originalColumn.Clone(); column.BackupChangedProperties.ImportData(originalColumn.BackupChangedProperties); if (column.BackupChangedProperties.ContainsKey("Name")) { Rename(database, tablename, column); } if (column.BackupChangedProperties.ContainsKey("IsAutoIncrement")) { if (column.IsAutoIncrement == false) { //去掉自增长 CancelAutoIncrement(database, tablename, column); } else { //设为自增长 BeAutoIncrement(database, tablename, column); } } if (column.BackupChangedProperties.ContainsKey("IsPKID") && column.IsPKID == false) { CancelPrimaryKey(database, tablename, column); } bool tosetDefaultValue = false; if (column.BackupChangedProperties.ContainsKey("defaultValue") || column.BackupChangedProperties.ContainsKey("dbType")) { tosetDefaultValue = true; CancelDefaultValue(database, tablename, column); } if (column.BackupChangedProperties.ContainsKey("dbType") || column.BackupChangedProperties.ContainsKey("length") || column.BackupChangedProperties.ContainsKey("CanNull")) { Modify(database, tablename, column); } if (tosetDefaultValue && !string.IsNullOrEmpty(column.defaultValue)) { SetDefaultValue(database, tablename, column); } if (column.BackupChangedProperties.ContainsKey("IsPKID") && column.IsPKID == true) { BePrimaryKey(database, tablename, column); } }
public static void HandleNewColumn(IDatabaseService database, string tablename, EJ.DBColumn originalColumn) { tablename = tablename.ToLower(); var column = (EJ.DBColumn)originalColumn.Clone(); column.BackupChangedProperties.ImportData(originalColumn.BackupChangedProperties); var dbtype = SqlServerTableService.GetSqlServerType(column); string sql = "alter table [" + tablename + "] add [" + column.Name.ToLower() + "] [" + dbtype + "]"; if (dbtype.IndexOf("char") >= 0) { if (!string.IsNullOrEmpty(column.length)) { sql += " (" + column.length + ")"; } else { sql += " (50)"; } } else { if (!string.IsNullOrEmpty(column.length)) { sql += " (" + column.length + ")"; } } if (column.IsAutoIncrement == true) { sql += " IDENTITY (1, 1)"; } if (column.CanNull == false || column.IsPKID == true || column.IsAutoIncrement == true) { sql += " NOT"; } sql += " NULL "; if (!string.IsNullOrEmpty(column.defaultValue)) { string defaultValue = column.defaultValue.Trim(); sql += " default '" + defaultValue.Replace("'", "''") + "' with values"; } database.ExecSqlString(sql); if (column.IsPKID == true) { database.ExecSqlString("alter table [" + tablename + "] add constraint pk_" + tablename + "_" + column.Name.ToLower() + " primary key ([" + column.Name.ToLower() + "])"); } }
public static void HandleNewColumn(IDatabaseService database, string tablename, EJ.DBColumn originalColumn) { tablename = tablename.ToLower(); var column = (EJ.DBColumn)originalColumn.Clone(); column.BackupChangedProperties.ImportData(originalColumn.BackupChangedProperties); string sqltype = MySqlTableService.GetSqlType(column.dbType); if (column.length.IsNullOrEmpty() == false) { if (sqltype.Contains("(")) { sqltype = sqltype.Substring(0, sqltype.IndexOf("(")); } sqltype += "(" + column.length + ")"; } string sql = "alter table `" + tablename + "` add `" + column.Name.ToLower() + "` " + sqltype; if (column.IsAutoIncrement == true) { sql += " AUTOINCREMENT"; } if (column.CanNull == false || column.IsPKID == true || column.IsAutoIncrement == true) { sql += " NOT"; } sql += " NULL "; if (!string.IsNullOrEmpty(column.defaultValue)) { string defaultValue = column.defaultValue.Trim(); if (column.dbType == "bit") { sql += " default " + defaultValue; } else { sql += " default '" + defaultValue.Replace("'", "''") + "'"; } } database.ExecSqlString(sql); if (column.IsPKID == true) { database.ExecSqlString(string.Format("Alter table `{0}` add primary key(`{1}`)", tablename, column.Name.ToLower())); } }
public static void HandleDelete(IDatabaseService database, string tablename, EJ.DBColumn originalColumn) { tablename = tablename.ToLower(); var column = (EJ.DBColumn)originalColumn.Clone(); column.BackupChangedProperties.ImportData(originalColumn.BackupChangedProperties); if (column.BackupChangedProperties["Name"] != null) { column.Name = column.BackupChangedProperties["Name"].OriginalValue.ToString(); column.BackupChangedProperties.Remove("Name"); } if (column.BackupChangedProperties["IsPKID"] != null && (bool)column.BackupChangedProperties["IsPKID"].OriginalValue == true) { CancelPrimaryKey(database, tablename, column); } else if (column.IsPKID == true) { CancelPrimaryKey(database, tablename, column); } Delete(database, tablename, column); }