public override string ColumnDataType(NoDbColumn column) { if (column == null) { return(""); } var output = column.DataType switch { NoDbDataType.BYTE => "tinyint", NoDbDataType.SHORT => "smallint", NoDbDataType.INT => "int", NoDbDataType.LONG => "bigint", NoDbDataType.BOOL => "bit", NoDbDataType.FLOAT => "float", NoDbDataType.DECIMAL => "decimal(" + column.Precision + "," + column.Scale + ")", NoDbDataType.DATE => "date", NoDbDataType.DATETIME => "datetime", NoDbDataType.TIMESPAN => "time", NoDbDataType.GUID => "uniqueidentifier", NoDbDataType.STRING => column.Length == 0 ? "nvarchar(MAX)" : "nvarchar(" + column.Length + ")", _ => throw new ArgumentOutOfRangeException(), }; return(output); }
public override string ColumnDataType(NoDbColumn column) { if (column == null) { return(""); } var output = column.DataType switch { NoDbDataType.BYTE => "smallint", NoDbDataType.SHORT => "smallint", NoDbDataType.INT => "int", NoDbDataType.LONG => "bigint", NoDbDataType.BOOL => "boolean", NoDbDataType.FLOAT => "real", NoDbDataType.DECIMAL => "numeric(" + column.Precision + "," + column.Scale + ")", NoDbDataType.DATE => "date", NoDbDataType.DATETIME => "timestamp", NoDbDataType.TIMESPAN => "time", NoDbDataType.GUID => "uuid", NoDbDataType.STRING => column.Length == 0 ? "text" : "character varying(" + column.Length + ")", _ => throw new ArgumentOutOfRangeException(), }; return(output); }
public override string ColumnDataType(NoDbColumn column) { if (column == null) { return(""); } var output = column.DataType switch { NoDbDataType.BYTE => "TINYINT", NoDbDataType.SHORT => "SMALLINT", NoDbDataType.INT => "MEDIUMINT", NoDbDataType.LONG => "BIGINT", NoDbDataType.BOOL => "BIT", NoDbDataType.FLOAT => "FLOAT", NoDbDataType.DECIMAL => "DECIMAL(" + column.Precision + "," + column.Scale + ")", NoDbDataType.DATE => "DATE", NoDbDataType.DATETIME => "DATETIME", NoDbDataType.TIMESPAN => "TIME", NoDbDataType.GUID => "uuid", NoDbDataType.STRING => column.Length == 0 ? "TEXT" : "TEXT(" + column.Length + ")", _ => throw new ArgumentOutOfRangeException(), }; return(output); }
public override string RenameColumnQuery(NoDbTable table, NoDbColumn oldColumn, NoDbColumn newColumn) { string schema = GetSchema(table); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendFormat("ALTER TABLE {3}.{0} RENAME COLUMN {1} TO {2};", Escape(table.Detail.GetTableDbName()), Escape(oldColumn.Name), Escape(newColumn.Name), schema); return(stringBuilder.ToString()); }
public override string DropColumnQuery(NoDbTable table, NoDbColumn column) { string schema = GetSchema(table); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendFormat("ALTER TABLE {2}.{0} DROP COLUMN {1};", Escape(table.Detail.GetTableDbName()), Escape(column.Name), schema); return(stringBuilder.ToString()); }
public override string RenameColumnQuery(NoDbTable table, NoDbColumn oldColumn, NoDbColumn newColumn) { string schema = GetSchema(table); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendFormat("EXEC sp_rename '{3}.{0}.{1}', '{2}', 'COLUMN';", table.Detail.GetTableDbName(), oldColumn.Name, newColumn.Name, schema); return(stringBuilder.ToString()); }
public override string UpdateColumnQuery(NoDbTable table, NoDbColumn column) { string schema = GetSchema(table); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendFormat("ALTER TABLE {0}.{1} " + "ALTER COLUMN {2} TYPE {3} --USING ({2}::integer) \n" + ",ALTER COLUMN {2} {4} NOT NULL;", schema, Escape(table.Detail.GetTableDbName()), Escape(column.Name), ColumnDataType(column), column.Required ? "SET" : "DROP"); return(stringBuilder.ToString()); }
public override string AddColumnQuery(NoDbTable table, NoDbColumn column) { var schema = GetSchema(table); StringBuilder stringBuilder = new StringBuilder(); if (column.Required) { stringBuilder.AppendFormat("ALTER TABLE {2}.{0} ADD {1};\n", Escape(table.Detail.GetTableDbName()), ColumnQuery(column), schema); column.Required = false; stringBuilder.AppendFormat("--ALTER TABLE {2}.{0} ADD {1};\n", Escape(table.Detail.GetTableDbName()), ColumnQuery(column), schema); stringBuilder.AppendFormat("--UPDATE {0}.{1} SET {2} = 0;\n", schema, Escape(table.Detail.GetTableDbName()), Escape(column.Name)); column.Required = true; stringBuilder.AppendFormat("--" + UpdateColumnQuery(table, column).Replace("\n", "\n--")); } else { stringBuilder.AppendFormat("ALTER TABLE {2}.{0} ADD {1};", Escape(table.Detail.GetTableDbName()), ColumnQuery(column), schema); } return(stringBuilder.ToString()); }
public override string ColumnQuery(NoDbColumn column) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.AppendFormat("{0} {1} ", Escape(column.Name), ColumnDataType(column)); if (column.IsAutoIncrement) { stringBuilder.AppendFormat("IDENTITY(1,1) "); } if (column.Required) { stringBuilder.AppendFormat("NOT NULL "); } else { stringBuilder.AppendFormat("NULL "); } return(stringBuilder.ToString()); }
public override string ColumnQuery(NoDbColumn column) { StringBuilder stringBuilder = new StringBuilder(); if (column.IsAutoIncrement) { string dataType = ""; if (column.DataType == NoDbDataType.LONG) { dataType = "BIGSERIAL"; } else if (column.DataType == NoDbDataType.INT) { dataType = "SERIAL"; } else { dataType = "SMALLSERIAL"; } stringBuilder.AppendFormat("{0} {1}", Escape(column.Name), dataType); } else { stringBuilder.AppendFormat("{0} {1} ", Escape(column.Name), ColumnDataType(column)); if (column.Required) { stringBuilder.AppendFormat("NOT NULL "); } else { stringBuilder.AppendFormat("NULL "); } } return(stringBuilder.ToString()); }
public abstract string UpdateColumnQuery(NoDbTable table, NoDbColumn column);
public abstract string RenameColumnQuery(NoDbTable table, NoDbColumn oldColumn, NoDbColumn newColumn);
public abstract string DropColumnQuery(NoDbTable table, NoDbColumn column);
public abstract string ColumnQuery(NoDbColumn column);
public abstract string ColumnDataType(NoDbColumn column);
public static string ColumnDataType(NoDbColumn column) { if (column == null) { return(""); } if (!string.IsNullOrEmpty(column.EnumName)) { return(column.EnumName + (column.Required ? "" : "?")); } string output; switch (column.DataType) { case NoDbDataType.BYTE: output = "byte"; break; case NoDbDataType.SHORT: output = "short"; break; case NoDbDataType.INT: output = "int"; break; case NoDbDataType.LONG: output = "long"; break; case NoDbDataType.BOOL: output = "bool"; break; case NoDbDataType.FLOAT: output = "double"; break; case NoDbDataType.DECIMAL: output = "decimal"; break; case NoDbDataType.DATE: output = "DateTime"; break; case NoDbDataType.DATETIME: output = "DateTime"; break; case NoDbDataType.TIMESPAN: output = "TimeSpan"; break; case NoDbDataType.GUID: output = "Guid"; break; case NoDbDataType.STRING: output = "string"; break; case NoDbDataType.OBJECT: output = "object"; break; default: throw new ArgumentOutOfRangeException(); } if (column.DataType != NoDbDataType.STRING && !column.Required) { output += "?"; } if (column.IsList) { return(string.Format("List<{0}>", output)); } return(output); }