public override string ModifyColumn(IColumn fromColumn, IColumn toColumn) {
var sql = new StringBuilder();
// drop a column constraint if need be
if (!string.IsNullOrEmpty(fromColumn.Default) && !fromColumn.IsPrimaryKey && !fromColumn.IsAutoGenerated
&& (string.IsNullOrEmpty(toColumn.Default) || fromColumn.Default != toColumn.Default)) {
sql.AppendLine(this.OnBeforeDropColumn(fromColumn));
}
// alter the column
sql.Append("alter table ");
this.AppendQuotedTableName(sql, toColumn.Map);
sql.Append(" alter column ");
this.AppendColumnSpecification(sql, toColumn, false);
// add a column constraint if need be
if (!string.IsNullOrEmpty(toColumn.Default) && !toColumn.IsPrimaryKey && !toColumn.IsAutoGenerated) {
sql.AppendLine(";");
sql.Append("alter table ");
this.AppendQuotedTableName(sql, toColumn.Map);
sql.Append(" add default (");
sql.Append(toColumn.Default);
sql.Append(") for");
this.AppendQuotedName(sql, toColumn.DbName);
}
return sql.ToString();
}