Dashing.Engine.Dialects.SqlServerDialect.ModifyColumn C# (CSharp) Method

ModifyColumn() public method

public ModifyColumn ( IColumn fromColumn, IColumn toColumn ) : string
fromColumn IColumn
toColumn IColumn
return string
        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();
        }