public override string Generate(CreateColumnExpression expression) { string errors = ValidateAdditionalFeatureCompatibility(expression.Column.AdditionalFeatures); if (!string.IsNullOrEmpty(errors)) return errors; return String.Format(AddColumn, Quoter.QuoteTableName(expression.TableName), Column.Generate(expression.Column)); }
public void ReverseSetsTableNameAndColumnNameOnGeneratedExpression() { var expression = new CreateColumnExpression { TableName = "Bacon", Column = { Name = "BaconId" } }; var reverse = expression.Reverse() as DeleteColumnExpression; reverse.TableName.ShouldBe("Bacon"); reverse.ColumnName.ShouldBe("BaconId"); }
public void CanUseSystemMethodCurrentDateTimeAsADefaultValueForAColumn() { var columnDefinition = new ColumnDefinition { Name = "NewColumn", Size = 15, Type = null, CustomType = "TIMESTAMP", DefaultValue = SystemMethods.CurrentDateTime }; var expression = new CreateColumnExpression { Column = columnDefinition, TableName = "NewTable" }; var result = Generator.Generate(expression); result.ShouldBe("ALTER TABLE `NewTable` ADD COLUMN `NewColumn` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP"); }
public void CanAddColumnWithGetDateDefault() { ColumnDefinition column = new ColumnDefinition { Name = "TestColumn1", Type = DbType.String, Size = 5, DefaultValue = "GetDate()" }; var expression = new CreateColumnExpression { TableName = "TestTable1", Column = column }; var sql = _generator.Generate(expression); sql.ShouldBe("ALTER TABLE [TestTable1] ADD [TestColumn1] NVARCHAR(5) NOT NULL DEFAULT GetDate()"); }
public dynamic CreateColumnGenerator(CreateColumnMigration createColumnMigration) { var column_migration_expr = new CreateColumnExpression { Column = build_column_definition(createColumnMigration) }; return column_migration_expr; }
public void CanUseSystemMethodCurrentUTCDateTimeAsADefaultValueForAColumn() { const string tableName = "NewTable"; var columnDefinition = new ColumnDefinition { Name = "NewColumn", Size = 5, Type = DbType.String, DefaultValue = SystemMethods.CurrentUTCDateTime }; var expression = new CreateColumnExpression { Column = columnDefinition, TableName = tableName }; var result = Generator.Generate(expression); result.ShouldBe("ALTER TABLE NewTable ADD COLUMN NewColumn VARGRAPHIC(5) CCSID 1200 NOT NULL DEFAULT (CURRENT_TIMESTAMP - CURRENT_TIMEZONE)"); }
public void CanUseSystemMethodCurrentUserAsADefaultValueForAColumn() { const string tableName = "NewTable"; var columnDefinition = new ColumnDefinition { Name = "NewColumn", Size = 18, Type = DbType.AnsiString, DefaultValue = SystemMethods.CurrentUser }; var expression = new CreateColumnExpression { Column = columnDefinition, TableName = tableName }; var result = Generator.Generate(expression); result.ShouldBe("ALTER TABLE NewTable ADD COLUMN NewColumn VARCHAR(18) NOT NULL DEFAULT USER"); }
public void CanUseSystemMethodCurrentUTCDateTimeAsADefaultValueForAColumn() { const string tableName = "NewTable"; var columnDefinition = new ColumnDefinition { Name = "NewColumn", Size = 5, Type = DbType.String, DefaultValue = SystemMethods.CurrentUTCDateTime }; var expression = new CreateColumnExpression { Column = columnDefinition, TableName = tableName }; var result = Generator.Generate(expression); result.ShouldBe("ALTER TABLE \"public\".\"NewTable\" ADD \"NewColumn\" varchar(5) NOT NULL DEFAULT (now() at time zone 'UTC')"); }
public void CanUseSystemMethodCurrentUTCDateTimeAsADefaultValueForAColumn() { const string tableName = "NewTable"; var columnDefinition = new ColumnDefinition { Name = "NewColumn", Size = 5, Type = DbType.String, DefaultValue = SystemMethods.CurrentUTCDateTime }; var expression = new CreateColumnExpression { Column = columnDefinition, TableName = tableName }; var result = Generator.Generate(expression); result.ShouldBe("ALTER TABLE \"NewTable\" ADD (\"NewColumn\" NVARCHAR(5) DEFAULT CURRENT_UTCTIMESTAMP);"); }
public void CanAddDecimalColumn() { var tableName = "NewTable"; var columnDefinition = new ColumnDefinition {Name = "NewColumn", Size = 19, Precision = 2, Type = DbType.Decimal}; var expression = new CreateColumnExpression {Column = columnDefinition, TableName = tableName}; ApplyDefaultConventions(expression); var sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE [NewTable] ADD COLUMN NewColumn NUMERIC NOT NULL"); }
public void CanUseSystemMethodCurrentUTCDateTimeAsADefaultValueForAColumn() { const string tableName = "NewTable"; var columnDefinition = new ColumnDefinition { Name = "NewColumn", Type = DbType.DateTime, DefaultValue = SystemMethods.CurrentUTCDateTime }; var expression = new CreateColumnExpression { Column = columnDefinition, TableName = tableName }; string sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE [dbo].[NewTable] ADD [NewColumn] DATETIME NOT NULL CONSTRAINT DF__NewColumn DEFAULT GETUTCDATE()"); }
public void CanUseSystemMethodCurrentUserAsADefaultValueForAColumn() { const string tableName = "NewTable"; var columnDefinition = new ColumnDefinition { Name = "NewColumn", Size = 15, Type = DbType.String, DefaultValue = SystemMethods.CurrentUser }; var expression = new CreateColumnExpression { Column = columnDefinition, TableName = tableName }; string sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE [dbo].[NewTable] ADD [NewColumn] NVARCHAR(15) NOT NULL CONSTRAINT DF__NewColumn DEFAULT CURRENT_USER"); }
public override string Generate(CreateColumnExpression expression) { var createStatement = new StringBuilder(); createStatement.Append(string.Format("ALTER TABLE {0}.{1} ADD {2}", Quoter.QuoteSchemaName(expression.SchemaName), Quoter.QuoteTableName(expression.TableName), Column.Generate(expression.Column))); var descriptionStatement = DescriptionGenerator.GenerateDescriptionStatement(expression); if (!string.IsNullOrEmpty(descriptionStatement)) { createStatement.Append(";"); createStatement.Append(descriptionStatement); } return createStatement.ToString(); }
public void CanAddDecimalColumn() { const string tableName = "NewTable"; var columnDefinition = new ColumnDefinition(); columnDefinition.Name = "NewColumn"; columnDefinition.Size = 19; columnDefinition.Precision = 2; columnDefinition.Type = DbType.Decimal; var expression = new CreateColumnExpression {Column = columnDefinition, TableName = tableName}; string sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE \"public\".\"NewTable\" ADD \"NewColumn\" decimal(19,2) NOT NULL"); }
public void CanAddIdentityColumn() { string tableName = "NewTable"; var columnDefinition = new ColumnDefinition(); columnDefinition.Name = "id"; columnDefinition.IsIdentity=true; columnDefinition.Type = DbType.Int32; var expression = new CreateColumnExpression(); expression.Column = columnDefinition; expression.TableName = tableName; string sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE \"public\".\"NewTable\" ADD \"id\" serial NOT NULL"); }
public void CanAddColumn() { string tableName = "NewTable"; var columnDefinition = new ColumnDefinition(); columnDefinition.Name = "NewColumn"; columnDefinition.Size = 5; columnDefinition.Type = DbType.String; var expression = new CreateColumnExpression(); expression.Column = columnDefinition; expression.TableName = tableName; string sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE \"public\".\"NewTable\" ADD \"NewColumn\" varchar(5) NOT NULL"); }
public void CanAddColumn() { var tableName = "NewTable"; var columnDefinition = new ColumnDefinition(); columnDefinition.Name = "NewColumn"; columnDefinition.Size = 5; columnDefinition.Type = DbType.String; var expression = new CreateColumnExpression(); expression.Column = columnDefinition; expression.TableName = tableName; var sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE [NewTable] ADD NewColumn NVARCHAR(5) NOT NULL"); }
public void CanAddDecimalColumn() { string tableName = "NewTable"; var columnDefinition = new ColumnDefinition(); columnDefinition.Name = "NewColumn"; columnDefinition.Size = 5; columnDefinition.Precision = 2; columnDefinition.Type = DbType.Decimal; var expression = new CreateColumnExpression(); expression.Column = columnDefinition; expression.TableName = tableName; string sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE \"NewTable\" ADD \"NewColumn\" DECIMAL(2,5) NOT NULL"); }
public void CanAddDecimalColumn() { var tableName = "NewTable"; var columnDefinition = new ColumnDefinition(); columnDefinition.Name = "NewColumn"; columnDefinition.Size = 19; columnDefinition.Precision = 2; columnDefinition.Type = DbType.Decimal; var expression = new CreateColumnExpression(); expression.Column = columnDefinition; expression.TableName = tableName; var sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE [NewTable] ADD NewColumn DECIMAL(19,2) NOT NULL"); }
public void CanAddDecimalColumn() { string tableName = "NewTable"; var columnDefinition = new ColumnDefinition(); columnDefinition.Name = "NewColumn"; columnDefinition.Size = 19; columnDefinition.Precision = 2; columnDefinition.Type = DbType.Decimal; var expression = new CreateColumnExpression(); expression.Column = columnDefinition; expression.TableName = tableName; string sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE [NewTable] ADD COLUMN NewColumn NUMERIC NOT NULL"); }
public override string Generate(CreateColumnExpression expression) { truncator.Truncate(expression); return base.Generate(expression); }
public void CanCreateXmlColumnWithDefaultSchema() { var expression = new CreateColumnExpression(); expression.TableName = "TestTable1"; expression.Column = new ColumnDefinition(); expression.Column.Name = "TestColumn1"; expression.Column.Type = DbType.Xml; var sql = generator.Generate(expression); sql.ShouldBe("ALTER TABLE [dbo].[TestTable1] ADD [TestColumn1] XML NOT NULL"); }
public void CanCreateXmlColumn() { var expression = new CreateColumnExpression(); expression.TableName = "Table1"; expression.Column = new ColumnDefinition(); expression.Column.Name = "MyXmlColumn"; expression.Column.Type = DbType.Xml; var sql = generator.Generate(expression); sql.ShouldNotBeNull(); }
public override string Generate(CreateColumnExpression expression) { return String.Format("ALTER TABLE {0} ADD {1}", expression.TableName, Column.Generate(expression.Column)); }
public override string Generate(CreateColumnExpression expression) { var descriptionStatement = DescriptionGenerator.GenerateDescriptionStatement(expression); if (string.IsNullOrEmpty(descriptionStatement)) return base.Generate(expression); var wrappedCreateColumnStatement = WrapStatementInExecuteImmediateBlock(base.Generate(expression)); var createColumnWithDescriptionBuilder = new StringBuilder(wrappedCreateColumnStatement); createColumnWithDescriptionBuilder.Append(WrapStatementInExecuteImmediateBlock(descriptionStatement)); return WrapInBlock(createColumnWithDescriptionBuilder.ToString()); }
public override string Generate(CreateColumnExpression expression) { return String.Format(AddColumn, Quoter.QuoteTableName(expression.TableName), Column.Generate(expression.Column)); }
public virtual void Process(CreateColumnExpression expression) { Process(Generator.Generate(expression)); }
public ICreateColumnOnTableSyntax Column(string columnName) { var expression = new CreateColumnExpression { Column = { Name = columnName } }; _context.Expressions.Add(expression); return new CreateColumnExpressionBuilder(expression, _context); }
public override string Generate(CreateColumnExpression expression) { //return string.Format("ALTER TABLE {0} ADD COLUMN {1}", expression.TableName, expression.Column.Name); return FormatExpression("ALTER TABLE [{0}] ADD COLUMN {1}", expression.TableName, GenerateDDLForColumn(expression.Column)); }
public override string Generate(CreateColumnExpression expression) { return string.Format("ALTER TABLE {0}.{1} ADD {2}", Quoter.QuoteSchemaName(expression.SchemaName), Quoter.QuoteTableName(expression.TableName), Column.Generate(expression.Column)); }