public virtual string Column(Column column, SqlOptions sql) { var line = $"{sql.IdentifieName(column.Name)} "; line += sql.CSharpTypeToSqlDataType(column.DataType, column.Size, column.Digits); line += column.NotNull ? " NOT NULL" : ""; if (column.AutoIncrement) { line += " IDENTITY(1,1)"; } else if (column.DefaultValue != null) { line += $" DEFAULT "; var obj = HandleObject(column.DefaultValue); if (obj is string s) { line += $"'{s}'"; } else { line += obj.ToString(); } } return(line); }
public virtual string Alter(Alter alter, SqlOptions sql) { var statement = $"ALTER TABLE {sql.IdentifieName(alter.Table)} "; switch (alter.WhatToModify) { case WhatToAlter.PrimaryKey: var columnPK = sql.IdentifieName(alter.Column); foreach (var c in alter.ExtraPrimaryKeyColumns) { columnPK += $",{sql.IdentifieName(c)}"; } statement += alter.AlterType == AlterType.Add ? $"ADD CONSTRAINT {sql.SafeIdentifieName(alter.ConstraintName)} PRIMARY KEY ({columnPK})" : $"DROP CONSTRAINT {sql.SafeIdentifieName(alter.ConstraintName)}"; break; case WhatToAlter.ForeignKey: statement += alter.AlterType == AlterType.Add ? $"ADD CONSTRAINT {sql.SafeIdentifieName(alter.ConstraintName)} FOREIGN KEY ({alter.Column}) REFERENCES " + $"{sql.IdentifieName(alter.ReferencesTable)}({sql.IdentifieName(alter.ReferencesColumn)})" : $"DROP CONSTRAINT {sql.SafeIdentifieName(alter.ConstraintName)}"; break; case WhatToAlter.Unique: statement += alter.AlterType == AlterType.Add ? $"ADD CONSTRAINT {sql.SafeIdentifieName(alter.ConstraintName)} UNIQUE ({alter.Column})" : $"DROP CONSTRAINT {sql.SafeIdentifieName(alter.ConstraintName)}"; break; case WhatToAlter.Column: switch (alter.AlterType) { case AlterType.Add: statement += $"ADD {alter.NewColumnToAdd.ToString(sql)}"; break; case AlterType.Drop: statement += $"DROP COLUMN {sql.IdentifieName(alter.Column)}"; break; case AlterType.Alter: statement += $"ALTER COLUMN {sql.IdentifieName(alter.Column)} " + $"{sql.CSharpTypeToSqlDataType(alter.DataTypeToAlter, alter.DataTypeSizeToAlter, alter.DataTypeDigitsToAlter)}"; break; } break; } return(statement); }
public virtual string Column(Column column, SqlOptions sql) { var line = $"{sql.IdentifieName(column.Name)} "; line += sql.CSharpTypeToSqlDataType(column.DataType, column.Size, column.Digits); line += column.NotNull ? " NOT NULL" : ""; if (column.AutoIncrement) { line += " AUTO_INCREMENT"; } else if (column.DefaultValue != null) { line += $" DEFAULT {sql.CreateItemID(column.DefaultValue)}"; } return(line); }