public override string Generate(AlterDefaultConstraintExpression expression)
 {
     truncator.Truncate(expression);
     return String.Format("ALTER TABLE {0} ALTER COLUMN {1} SET DEFAULT {2}",
         Quoter.QuoteTableName(expression.TableName),
         Quoter.QuoteColumnName(expression.ColumnName),
         Quoter.QuoteValue(expression.DefaultValue)
         );
 }
 public static AlterDefaultConstraintExpression GetAlterDefaultConstraintExpression()
 {
     var expression = new AlterDefaultConstraintExpression
                          {
                              ColumnName = TestColumnName1,
                              DefaultValue = 1,
                              TableName = TestTableName1
                          };
     return expression;
 }
 public override string Generate(AlterDefaultConstraintExpression expression)
 {
     throw new NotImplementedException();
 }
 public override string Generate(AlterDefaultConstraintExpression expression)
 {
     return String.Format("ALTER TABLE {0}.{1} ALTER {2} DROP DEFAULT, ALTER {2} {3}", Quoter.QuoteSchemaName(expression.SchemaName), Quoter.QuoteTableName(expression.TableName), Quoter.QuoteColumnName(expression.ColumnName), ((PostgresColumn)Column).FormatAlterDefaultValue(expression.ColumnName, expression.DefaultValue));
 }
        public override string Generate(AlterDefaultConstraintExpression expression)
        {
            // before we alter a default constraint on a column, we have to drop any default value constraints in SQL Server
            var builder = new StringBuilder();

            builder.AppendLine(Generate(new DeleteDefaultConstraintExpression
                                            {
                                                ColumnName = expression.ColumnName,
                                                SchemaName = expression.SchemaName,
                                                TableName = expression.TableName
                                            }));

            builder.AppendLine();

            builder.Append(String.Format("-- create alter table command to create new default constraint as string and run it\r\nALTER TABLE {0} WITH NOCHECK ADD CONSTRAINT {3} DEFAULT({2}) FOR {1};",
                Quoter.QuoteTableName(expression.TableName),
                Quoter.QuoteColumnName(expression.ColumnName),
                Quoter.QuoteValue(expression.DefaultValue),
                Quoter.QuoteConstraintName(SqlServerColumn.GetDefaultConstraintName(expression.TableName, expression.ColumnName))));

            return builder.ToString();
        }
 public void Process(AlterDefaultConstraintExpression expression)
 {
     Process(Generator.Generate(expression));
 }
 public void Truncate(AlterDefaultConstraintExpression expression)
 {
     expression.TableName = Truncate(expression.TableName);
     expression.ColumnName = Truncate(expression.ColumnName);
 }
Beispiel #8
0
 public abstract string Generate(AlterDefaultConstraintExpression expression);
        public override string Generate(AlterDefaultConstraintExpression expression)
        {
            const string sql =
                @"
            DECLARE @default sysname, @sql nvarchar(max);

            -- get name of default constraint
            SELECT @default = name
            FROM sys.default_constraints
            WHERE parent_object_id = object_id('{0}')
            AND type = 'D'
            AND parent_column_id = (
                SELECT column_id
                FROM sys.columns
                WHERE object_id = object_id('{0}')
                AND name = '{1}'
            );

            -- create alter table command to drop contraint as string and run it
            SET @sql = N'ALTER TABLE {0} DROP CONSTRAINT ' + @default;
            EXEC sp_executesql @sql;

            -- create alter table command to create new default constraint as string and run it
            SET @sql = N'ALTER TABLE {0} WITH NOCHECK ADD CONSTRAINT [' + @default + '] DEFAULT({2}) FOR {1}';
            EXEC sp_executesql @sql;";

            return String.Format(sql,Quoter.QuoteTableName(expression.TableName), Quoter.QuoteColumnName(expression.ColumnName),Quoter.QuoteValue(expression.DefaultValue));
        }
Beispiel #10
0
 public override string Generate(AlterDefaultConstraintExpression expression)
 {
     return compatabilityMode.HandleCompatabilty("Altering of default constraints is not supporteed for MySql");
 }
 public override string Generate(AlterDefaultConstraintExpression expression)
 {
     return compatabilityMode.HandleCompatabilty("Sqlite does not support altering of default constraints");
 }
 public override string Generate(AlterDefaultConstraintExpression expression)
 {
     throw new DatabaseOperationNotSupportedException();
 }
        public override string Generate(AlterDefaultConstraintExpression expression)
        {
            const string sql =
                @"
            DECLARE @default sysname, @sql nvarchar(max);

            -- get name of default constraint
            SELECT @default = name
            FROM sys.default_constraints
            WHERE parent_object_id = object_id('{1}{2}')
            AND type = 'D'
            AND parent_column_id = (
                SELECT column_id
                FROM sys.columns
                WHERE object_id = object_id('{1}{2}')
                AND name = '{3}'
            );

            -- create alter table command to drop contraint as string and run it
            SET @sql = N'ALTER TABLE {0}[{2}] DROP CONSTRAINT ' + @default;
            EXEC sp_executesql @sql;

            -- create alter table command to create new default constraint as string and run it
            SET @sql = N'ALTER TABLE {0}[{2}] WITH NOCHECK ADD CONSTRAINT [' + @default + '] DEFAULT({4}) FOR {3}';
            EXEC sp_executesql @sql;";

            return FormatExpression(sql, FormatSchema(expression.SchemaName), FormatSchema(expression.SchemaName, false), expression.TableName, expression.ColumnName, FormatSqlEscape(GetConstantValue(expression.DefaultValue)));
        }
Beispiel #14
0
 public override string Generate(AlterDefaultConstraintExpression expression)
 {
     return compatabilityMode.HandleCompatabilty("Default constraints are not supported");
 }
 public override string Generate(AlterDefaultConstraintExpression expression)
 {
     return String.Format(AlterColumn, Quoter.QuoteTableName(expression.TableName), Column.Generate(new ColumnDefinition
     {
         ModificationType = ColumnModificationType.Alter,
         Name = expression.ColumnName,
         DefaultValue = expression.DefaultValue
     }));
 }