diff --git a/src/main/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/MsSqlServerDdl.java b/src/main/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/MsSqlServerDdl.java index 86008d08d..8c625a12b 100644 --- a/src/main/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/MsSqlServerDdl.java +++ b/src/main/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/MsSqlServerDdl.java @@ -14,6 +14,7 @@ public class MsSqlServerDdl extends PlatformDdl { this.identitySuffix = " identity(1,1)"; this.foreignKeyRestrict = ""; this.inlineUniqueOneToOne = false; + this.columnSetDefault = "add default"; } @Override @@ -49,6 +50,17 @@ public class MsSqlServerDdl extends PlatformDdl { return sb.toString(); } + + @Override + public String alterColumnDefaultValue(String tableName, String columnName, String defaultValue) { + + if (isDropDefault(defaultValue)) { + return "-- alter table " + tableName + " drop constraint -- find the appropriate constraint for default value on column " + columnName; + } else { + return "alter table " + tableName + " add default " + defaultValue + " for " + columnName; + } + } + public String alterColumnBaseAttributes(AlterColumn alter) { String tableName = alter.getTableName(); diff --git a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java index d02a01e45..ac2711e0a 100644 --- a/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java +++ b/src/test/java/com/avaje/ebean/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java @@ -19,7 +19,6 @@ public class PlatformDdl_AlterColumnTest { PlatformDdl oraDdl = new Oracle10Platform().getPlatformDdl(); PlatformDdl sqlServerDdl = new MsSqlServer2005Platform().getPlatformDdl(); - AlterColumn alterNotNull() { AlterColumn alterColumn = new AlterColumn(); alterColumn.setTableName("mytab"); @@ -57,7 +56,6 @@ public class PlatformDdl_AlterColumnTest { alterColumn.setCurrentNotnull(Boolean.TRUE); sql = mysqlDdl.alterColumnBaseAttributes(alterColumn); assertEquals("alter table mytab modify acol varchar(100) not null", sql); - } @Test @@ -93,6 +91,9 @@ public class PlatformDdl_AlterColumnTest { sql = mysqlDdl.alterColumnNotnull("mytab", "acol", true); assertNull(sql); + + sql = sqlServerDdl.alterColumnNotnull("mytab", "acol", true); + assertNull(sql); } @Test @@ -109,6 +110,9 @@ public class PlatformDdl_AlterColumnTest { sql = mysqlDdl.alterColumnNotnull("mytab", "acol", false); assertNull(sql); + + sql = sqlServerDdl.alterColumnNotnull("mytab", "acol", false); + assertNull(sql); } @Test @@ -126,6 +130,8 @@ public class PlatformDdl_AlterColumnTest { sql = mysqlDdl.alterColumnDefaultValue("mytab", "acol", "'hi'"); assertEquals("alter table mytab alter acol set default 'hi'", sql); + sql = sqlServerDdl.alterColumnDefaultValue("mytab", "acol", "'hi'"); + assertEquals("alter table mytab add default 'hi' for acol", sql); } @Test @@ -143,6 +149,8 @@ public class PlatformDdl_AlterColumnTest { sql = mysqlDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT"); assertEquals("alter table mytab alter acol drop default", sql); + sql = sqlServerDdl.alterColumnDefaultValue("mytab", "acol", "DROP DEFAULT"); + assertTrue(sql, sql.startsWith("-- alter")); } } \ No newline at end of file