public override string Generate(DeleteColumnExpression expression)
        {
            // before we drop a column, we have to drop any default value constraints in SQL Server
            var builder = new StringBuilder();

            foreach (string column in expression.ColumnNames)
            {
                if (expression.ColumnNames.First() != column)
                {
                    builder.AppendLine("GO");
                }
                BuildDelete(expression, column, builder);
            }

            return(builder.ToString());
        }
        public override string Generate(DeleteColumnExpression expression)
        {
            StringBuilder builder = new StringBuilder();

            foreach (string columnName in expression.ColumnNames)
            {
                if (expression.ColumnNames.First() != columnName)
                {
                    builder.AppendLine(";");
                }
                builder.AppendFormat("ALTER TABLE {0}.{1} DROP COLUMN {2}",
                                     Quoter.QuoteSchemaName(expression.SchemaName),
                                     Quoter.QuoteTableName(expression.TableName),
                                     Quoter.QuoteColumnName(columnName));
            }
            return(builder.ToString());
        }
        protected virtual void BuildDelete(DeleteColumnExpression expression, string columnName, StringBuilder builder)
        {
            builder.AppendLine(
                Generate(
                    new DeleteDefaultConstraintExpression
            {
                ColumnName = columnName,
                SchemaName = expression.SchemaName,
                TableName  = expression.TableName
            }));

            builder.AppendLine();

            builder.AppendLine(string.Format("-- now we can finally drop column" + Environment.NewLine + "ALTER TABLE {0} DROP COLUMN {1};",
                                             Quoter.QuoteTableName(expression.TableName, expression.SchemaName),
                                             Quoter.QuoteColumnName(columnName)));
        }
Ejemplo n.º 4
0
        public override void Process(DeleteColumnExpression expression)
        {
            var tableDefinition = GetTableSchema(expression.TableName);

            var columnDefinitions = tableDefinition.Columns.ToList();
            var indexDefinitions  = tableDefinition.Indexes.ToList();

            var columnsToRemove = expression.ColumnNames.ToList();

            columnDefinitions.RemoveAll(c => columnsToRemove.Remove(c.Name));
            indexDefinitions.RemoveAll(i => i.Columns.Any(c => expression.ColumnNames.Contains(c.Name)));

            tableDefinition.Columns = columnDefinitions;
            tableDefinition.Indexes = indexDefinitions;

            if (columnsToRemove.Any())
            {
                throw new ApplicationException(string.Format("Column {0} does not exist on table {1}.", columnsToRemove.First(), expression.TableName));
            }

            ProcessAlterTable(tableDefinition);
        }
Ejemplo n.º 5
0
        public override void Process(DeleteColumnExpression expression)
        {
            Truncator.Truncate(expression);
            CheckColumn(expression.TableName, expression.ColumnNames);
            LockColumn(expression.TableName, expression.ColumnNames);
            foreach (string columnName in expression.ColumnNames)
            {
                try
                {
                    if (SequenceExists(string.Empty, GetSequenceName(expression.TableName, columnName)))
                    {
                        DeleteSequenceForIdentity(expression.TableName, columnName);
                    }
                }
                catch (ArgumentException)
                {
                    // Ignore argument exception???
                }
            }

            InternalProcess(Generator.Generate(expression));
        }
Ejemplo n.º 6
0
 public override string Generate(DeleteColumnExpression expression)
 {
     return(string.Format("ALTER TABLE {0}.{1} DROP COLUMN {2}", Quoter.QuoteSchemaName(expression.SchemaName), Quoter.QuoteTableName(expression.TableName), Quoter.QuoteColumnName(expression.ColumnName)));
 }
Ejemplo n.º 7
0
 public override string Generate(DeleteColumnExpression expression)
 {
     Truncator.Truncate(expression);
     return(base.Generate(expression));
 }
Ejemplo n.º 8
0
 public virtual void Process(DeleteColumnExpression expression)
 {
     Process(Generator.Generate(expression));
 }
Ejemplo n.º 9
0
 public override string Generate(DeleteColumnExpression expression)
 {
     return(CompatibilityMode.HandleCompatibilty("SQLite does not support deleting of columns"));
 }
Ejemplo n.º 10
0
 public abstract string Generate(DeleteColumnExpression expression);
Ejemplo n.º 11
0
 public override string Generate(DeleteColumnExpression expression)
 {
     return(string.Join(MultilineDelimiter, expression.ColumnNames.Select(columnName => String.Format(DropColumn, Quoter.QuoteTableName(expression.TableName), Quoter.QuoteColumnName(columnName), CommandDelimiter)).ToArray()));
 }
Ejemplo n.º 12
0
 public override string Generate(DeleteColumnExpression expression)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 13
0
 public override string Generate(DeleteColumnExpression expression)
 {
     return(string.Format("{0};", base.Generate(expression)));
 }
Ejemplo n.º 14
0
 public override string Generate(DeleteColumnExpression expression)
 {
     return(String.Format(DropColumn, Quoter.QuoteTableName(expression.TableName), Quoter.QuoteColumnName(expression.ColumnName)));
 }
Ejemplo n.º 15
0
 public void Truncate(DeleteColumnExpression expression)
 {
     expression.TableName   = Truncate(expression.TableName);
     expression.ColumnNames = TruncateNames(expression.ColumnNames);
 }
Ejemplo n.º 16
0
 public static DeleteColumnExpression ToLower(this DeleteColumnExpression expresstion)
 {
     expresstion.TableName   = expresstion.TableName.ToLower();
     expresstion.ColumnNames = expresstion.ColumnNames.ToLower();
     return(expresstion);
 }
Ejemplo n.º 17
0
 public override string Generate(DeleteColumnExpression expression)
 {
     return(string.Format("ALTER TABLE {0}.{1} DROP COLUMN {2}", FormatSchema(expression.SchemaName), FormatIdentifier(expression.TableName), FormatIdentifier(expression.ColumnName)));
 }
 public override void Process(DeleteColumnExpression expression)
 {
     base.Process(expression.ToLower());
 }