diff --git a/src/EFCore.SqlServer/Migrations/SqlServerMigrationsSqlGenerator.cs b/src/EFCore.SqlServer/Migrations/SqlServerMigrationsSqlGenerator.cs index 06f084f7d3c..0d1299d90a3 100644 --- a/src/EFCore.SqlServer/Migrations/SqlServerMigrationsSqlGenerator.cs +++ b/src/EFCore.SqlServer/Migrations/SqlServerMigrationsSqlGenerator.cs @@ -38,6 +38,9 @@ public class SqlServerMigrationsSqlGenerator : MigrationsSqlGenerator private IReadOnlyList _operations; private int _variableCounter; + private static readonly bool _useOldAlterColumnDefaultValueLogic = + AppContext.TryGetSwitch("Microsoft.EntityFrameworkCore.Issue24272", out var enabled) && enabled; + /// /// Creates a new instance. /// @@ -391,7 +394,11 @@ protected override void Generate(AddCheckConstraintOperation operation, IModel m builder.AppendLine(Dependencies.SqlGenerationHelper.StatementTerminator); } - if (!Equals(operation.DefaultValue, oldDefaultValue) || operation.DefaultValueSql != oldDefaultValueSql) + var addDefaultValue = _useOldAlterColumnDefaultValueLogic + ? operation.DefaultValue != null || operation.DefaultValueSql != null + : !Equals(operation.DefaultValue, oldDefaultValue) || operation.DefaultValueSql != oldDefaultValueSql; + + if (addDefaultValue) { builder .Append("ALTER TABLE ")