public override void Generate(
     DropDefaultConstraintOperation dropDefaultConstraintOperation,
     IndentedStringBuilder stringBuilder)
 {
     // TODO: Rebuild table
     throw new NotImplementedException();
 }
        public override void Generate(DropDefaultConstraintOperation dropDefaultConstraintOperation, IndentedStringBuilder stringBuilder)
        {
            Check.NotNull(dropDefaultConstraintOperation, "dropDefaultConstraintOperation");
            Check.NotNull(stringBuilder, "stringBuilder");

            var constraintNameVariable = "@var" + _variableCount++;

            stringBuilder
            .Append("DECLARE ")
            .Append(constraintNameVariable)
            .AppendLine(" nvarchar(128)");

            stringBuilder
            .Append("SELECT ")
            .Append(constraintNameVariable)
            .Append(" = name FROM sys.default_constraints WHERE parent_object_id = OBJECT_ID(N")
            .Append(DelimitLiteral(dropDefaultConstraintOperation.TableName))
            .Append(") AND COL_NAME(parent_object_id, parent_column_id) = N")
            .AppendLine(DelimitLiteral(dropDefaultConstraintOperation.ColumnName));

            stringBuilder
            .Append("EXECUTE('ALTER TABLE ")
            .Append(DelimitIdentifier(dropDefaultConstraintOperation.TableName))
            .Append(" DROP CONSTRAINT \"' + ")
            .Append(constraintNameVariable)
            .Append(" + '\"')");
        }
示例#3
0
        public void Create_and_initialize_operation()
        {
            var dropDefaultConstraintOperation = new DropDefaultConstraintOperation("dbo.MyTable", "Foo");

            Assert.Equal("dbo.MyTable", dropDefaultConstraintOperation.TableName);
            Assert.Equal("Foo", dropDefaultConstraintOperation.ColumnName);
            Assert.False(dropDefaultConstraintOperation.IsDestructiveChange);
        }
        public override void Visit(DropDefaultConstraintOperation operation, Context context)
        {
            Check.NotNull(operation, "operation");
            Check.NotNull(context, "context");

            var handler = context.EnsureHandler(operation.TableName, supported: false);

            handler.AddOperation(operation);
        }
        public void Generate_when_drop_default_constraint_operation()
        {
            var operation = new DropDefaultConstraintOperation("dbo.MyTable", "Foo");

            Assert.Equal(
                @"DropDefaultConstraint(""dbo.MyTable"", ""Foo"")",
                CSharpMigrationCodeGenerator.Generate(operation));

            GenerateAndValidateCode(operation);
        }
示例#6
0
        public void Dispatches_visitor()
        {
            var dropDefaultConstraintOperation = new DropDefaultConstraintOperation("dbo.MyTable", "Foo");
            var mockVisitor = new Mock <MigrationOperationSqlGenerator>(new RelationalTypeMapper());
            var builder     = new Mock <IndentedStringBuilder>();

            dropDefaultConstraintOperation.GenerateSql(mockVisitor.Object, builder.Object);

            mockVisitor.Verify(g => g.Generate(dropDefaultConstraintOperation, builder.Object), Times.Once());
        }
        public void Dispatches_visitor()
        {
            var dropDefaultConstraintOperation = new DropDefaultConstraintOperation("dbo.MyTable", "Foo");
            var mockVisitor = MigrationsTestHelpers.MockSqlGenerator();
            var builder     = new Mock <SqlBatchBuilder>();

            dropDefaultConstraintOperation.GenerateSql(mockVisitor.Object, builder.Object);

            mockVisitor.Verify(g => g.Generate(dropDefaultConstraintOperation, builder.Object), Times.Once());
        }
        public virtual void Visit(DropDefaultConstraintOperation dropDefaultConstraintOperation, DatabaseModel databaseModel)
        {
            var table  = databaseModel.GetTable(dropDefaultConstraintOperation.TableName);
            var column = table.GetColumn(dropDefaultConstraintOperation.ColumnName);

            Contract.Assert(column.HasDefault);

            column.DefaultValue = null;
            column.DefaultSql   = null;
        }
示例#9
0
        public virtual void Generate([NotNull] DropDefaultConstraintOperation dropDefaultConstraintOperation, [NotNull] IndentedStringBuilder stringBuilder, bool generateIdempotentSql)
        {
            Check.NotNull(dropDefaultConstraintOperation, "dropDefaultConstraintOperation");

            stringBuilder
            .Append("ALTER TABLE ")
            .Append(DelimitIdentifier(dropDefaultConstraintOperation.TableName))
            .Append(" ALTER COLUMN ")
            .Append(DelimitIdentifier(dropDefaultConstraintOperation.ColumnName))
            .Append(" DROP DEFAULT");
        }
        public override void Generate([NotNull] DropDefaultConstraintOperation dropDefaultConstraintOperation, [NotNull] IndentedStringBuilder stringBuilder)
        {
            Check.NotNull(dropDefaultConstraintOperation, "dropDefaultConstraintOperation");
            Check.NotNull(stringBuilder, "stringBuilder");

            stringBuilder
            .Append("DropDefaultConstraint(")
            .Append(GenerateLiteral(dropDefaultConstraintOperation.TableName))
            .Append(", ")
            .Append(GenerateLiteral(dropDefaultConstraintOperation.ColumnName))
            .Append(")");
        }
        public virtual void Generate([NotNull] DropDefaultConstraintOperation dropDefaultConstraintOperation, [NotNull] SqlBatchBuilder batchBuilder)
        {
            Check.NotNull(dropDefaultConstraintOperation, "dropDefaultConstraintOperation");
            Check.NotNull(batchBuilder, "batchBuilder");

            batchBuilder
            .Append("ALTER TABLE ")
            .Append(DelimitIdentifier(dropDefaultConstraintOperation.TableName))
            .Append(" ALTER COLUMN ")
            .Append(DelimitIdentifier(dropDefaultConstraintOperation.ColumnName))
            .Append(" DROP DEFAULT");
        }
示例#12
0
        public override void Visit(DropDefaultConstraintOperation dropDefaultConstraintOperation, DatabaseModel databaseModel)
        {
            Check.NotNull(dropDefaultConstraintOperation, "dropDefaultConstraintOperation");
            Check.NotNull(databaseModel, "databaseModel");

            var table  = databaseModel.GetTable(dropDefaultConstraintOperation.TableName);
            var column = table.GetColumn(dropDefaultConstraintOperation.ColumnName);

            Contract.Assert(column.HasDefault);

            column.DefaultValue = null;
            column.DefaultSql   = null;
        }
示例#13
0
        public void Visit_with_drop_default_constraint_operation()
        {
            var model  = new DatabaseModel();
            var column = new Column("Foo", typeof(int))
            {
                DefaultValue = 5, DefaultSql = "Sql"
            };
            var table     = new Table("dbo.MyTable", new[] { column });
            var operation = new DropDefaultConstraintOperation("dbo.MyTable", "Foo");

            model.AddTable(table);

            Assert.True(column.HasDefault);

            operation.Accept(new DatabaseModelModifier(), model);

            Assert.False(column.HasDefault);
        }
示例#14
0
        public override void Generate(DropDefaultConstraintOperation dropDefaultConstraintOperation, IndentedStringBuilder stringBuilder, bool generateIdempotentSql)
        {
            Check.NotNull(dropDefaultConstraintOperation, "dropDefaultConstraintOperation");
            Check.NotNull(stringBuilder, "stringBuilder");

            var constraintNameVariable = "@var" + _variableCount++;

            stringBuilder
            .Append("DECLARE ")
            .Append(constraintNameVariable)
            .AppendLine(" nvarchar(128)");

            stringBuilder
            .Append("SELECT ")
            .Append(constraintNameVariable)
            .Append(" = name FROM sys.default_constraints WHERE parent_object_id = OBJECT_ID(N")
            .Append(DelimitLiteral(dropDefaultConstraintOperation.TableName))
            .Append(") AND COL_NAME(parent_object_id, parent_column_id) = N")
            .AppendLine(DelimitLiteral(dropDefaultConstraintOperation.ColumnName));

            if (generateIdempotentSql)
            {
                stringBuilder
                .Append("IF ")
                .Append(constraintNameVariable)
                .AppendLine(" IS NOT NULL");

                using (stringBuilder.Indent())
                {
                    GenerateExecuteDropConstraint(dropDefaultConstraintOperation.TableName, constraintNameVariable, stringBuilder);
                }
            }
            else
            {
                GenerateExecuteDropConstraint(dropDefaultConstraintOperation.TableName, constraintNameVariable, stringBuilder);
            }
        }
示例#15
0
 public abstract void Generate([NotNull] DropDefaultConstraintOperation dropDefaultConstraintOperation, [NotNull] IndentedStringBuilder stringBuilder);