protected override string WriteDataType(DatabaseColumn column) { var type = new DataTypeWriter().WriteDataType(column); if (column.IsPrimaryKey && (Table.PrimaryKey == null || Table.PrimaryKey.Columns.Count == 1)) { type += " PRIMARY KEY"; if (column.IsIdentity) { type += " AUTOINCREMENT"; } } if (!column.Nullable) { type += " NOT NULL"; } //if there's a default value, and it's not a guid generator if (!string.IsNullOrEmpty(column.DefaultValue) && !SqlTranslator.IsGuidGenerator(column.DefaultValue)) { var value = SqlTranslator.Fix(column.DefaultValue); type += " DEFAULT " + value; } return(type); }
public override string WriteDataType(DatabaseColumn column) { var type = new DataTypeWriter().WriteDataType(column); if (column.IsPrimaryKey && (Table.PrimaryKey == null || Table.PrimaryKey.Columns.Count == 1)) { type += " PRIMARY KEY"; if (column.IsAutoNumber) //must be integer primary key { return "INTEGER PRIMARY KEY AUTOINCREMENT"; } } if (!column.Nullable) type += " NOT NULL"; //if there's a default value, and it's not a guid generator or autonumber if (!string.IsNullOrEmpty(column.DefaultValue) && !SqlTranslator.IsGuidGenerator(column.DefaultValue) && !column.IsAutoNumber) { var value = SqlTranslator.Fix(column.DefaultValue); //SqlServer (N'string') format if (value.StartsWith("(N'", StringComparison.OrdinalIgnoreCase)) value = value.Replace("(N'", "('"); type += " DEFAULT " + value; } return type; }
protected override string WriteDataType(DatabaseColumn column) { var type = new DataTypeWriter().WriteDataType(column); if (column.IsPrimaryKey && (Table.PrimaryKey == null || Table.PrimaryKey.Columns.Count == 1)) { type += " PRIMARY KEY"; if (column.IsAutoNumber) //must be integer primary key { //an sqlite auto increment may be nullable return("INTEGER PRIMARY KEY AUTOINCREMENT" + (!column.Nullable ? " NOT NULL" : "")); } } if (!column.Nullable) { type += " NOT NULL"; } //if there's a default value, and it's not a guid generator or autonumber if (!string.IsNullOrEmpty(column.DefaultValue) && !SqlTranslator.IsGuidGenerator(column.DefaultValue) && !column.IsAutoNumber) { var value = SqlTranslator.Fix(column.DefaultValue); //SqlServer (N'string') format if (value.StartsWith("(N'", StringComparison.OrdinalIgnoreCase)) { value = value.Replace("(N'", "('"); } type += " DEFAULT " + value; } return(type); }