Esempio n. 1
0
        public void CanAlterDefaultConstraint()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();
            var sql        = _generator.Generate(expression);

            const string expected = "DECLARE @default sysname, @sql nvarchar(4000);\r\n\r\n" +
                                    "-- get name of default constraint\r\n" +
                                    "SELECT @default = name\r\n" +
                                    "FROM sys.default_constraints\r\n" +
                                    "WHERE parent_object_id = object_id('[TestTable1]')\r\n" + "" +
                                    "AND type = 'D'\r\n" + "" +
                                    "AND parent_column_id = (\r\n" + "" +
                                    "SELECT column_id\r\n" +
                                    "FROM sys.columns\r\n" +
                                    "WHERE object_id = object_id('[TestTable1]')\r\n" +
                                    "AND name = 'TestColumn1'\r\n" +
                                    ");\r\n\r\n" +
                                    "-- create alter table command to drop contraint as string and run it\r\n" +
                                    "SET @sql = N'ALTER TABLE [TestTable1] DROP CONSTRAINT ' + @default;\r\n" +
                                    "EXEC sp_executesql @sql;\r\n\r\n" +
                                    "-- create alter table command to create new default constraint as string and run it\r\n" +
                                    "ALTER TABLE [TestTable1] WITH NOCHECK ADD CONSTRAINT DF_TestTable1_TestColumn1 DEFAULT(1) FOR [TestColumn1];";

            sql.ShouldBe(expected);
        }
Esempio n. 2
0
        public void CanAlterDefaultConstraintWithDefaultSchema()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            string expected = "DECLARE @default sysname, @sql nvarchar(max);" + Environment.NewLine + Environment.NewLine +
                              "-- get name of default constraint" + Environment.NewLine +
                              "SELECT @default = name" + Environment.NewLine +
                              "FROM sys.default_constraints" + Environment.NewLine +
                              "WHERE parent_object_id = object_id('[dbo].[TestTable1]')" + Environment.NewLine +
                              "AND type = 'D'" + Environment.NewLine +
                              "AND parent_column_id = (" + Environment.NewLine +
                              "SELECT column_id" + Environment.NewLine +
                              "FROM sys.columns" + Environment.NewLine +
                              "WHERE object_id = object_id('[dbo].[TestTable1]')" + Environment.NewLine +
                              "AND name = 'TestColumn1'" + Environment.NewLine +
                              ");" + Environment.NewLine + Environment.NewLine +
                              "-- create alter table command to drop constraint as string and run it" + Environment.NewLine +
                              "SET @sql = N'ALTER TABLE [dbo].[TestTable1] DROP CONSTRAINT ' + QUOTENAME(@default);" + Environment.NewLine +
                              "EXEC sp_executesql @sql;" + Environment.NewLine + Environment.NewLine +
                              "-- create alter table command to create new default constraint as string and run it" + Environment.NewLine +
                              "ALTER TABLE [dbo].[TestTable1] WITH NOCHECK ADD CONSTRAINT [DF_TestTable1_TestColumn1] DEFAULT(1) FOR [TestColumn1];";

            var result = Generator.Generate(expression);

            result.ShouldBe(expected);
        }
Esempio n. 3
0
        public void CanAlterDefaultConstraintWithCurrentUtcDateAsDefault()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.CurrentUTCDateTime;
            var sql = generator.Generate(expression);

            string expected = "DECLARE @default sysname, @sql nvarchar(max);" + Environment.NewLine + Environment.NewLine +
                              "-- get name of default constraint" + Environment.NewLine +
                              "SELECT @default = name" + Environment.NewLine +
                              "FROM sys.default_constraints" + Environment.NewLine +
                              "WHERE parent_object_id = object_id('[dbo].[TestTable1]')" + Environment.NewLine +
                              "AND type = 'D'" + Environment.NewLine +
                              "AND parent_column_id = (" + Environment.NewLine +
                              "SELECT column_id" + Environment.NewLine +
                              "FROM sys.columns" + Environment.NewLine +
                              "WHERE object_id = object_id('[dbo].[TestTable1]')" + Environment.NewLine +
                              "AND name = 'TestColumn1'" + Environment.NewLine +
                              ");" + Environment.NewLine + Environment.NewLine +
                              "-- create alter table command to drop constraint as string and run it" + Environment.NewLine +
                              "SET @sql = N'ALTER TABLE [dbo].[TestTable1] DROP CONSTRAINT ' + @default;" + Environment.NewLine +
                              "EXEC sp_executesql @sql;" + Environment.NewLine + Environment.NewLine +
                              "-- create alter table command to create new default constraint as string and run it" + Environment.NewLine +
                              "ALTER TABLE [dbo].[TestTable1] WITH NOCHECK ADD CONSTRAINT [DF_TestTable1_TestColumn1] DEFAULT(GETUTCDATE()) FOR [TestColumn1];";

            sql.ShouldBe(expected);
        }
Esempio n. 4
0
        public void CanAlterDefaultConstraintWithValueAsDefault()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE \"TestTable1\" MODIFY \"TestColumn1\" DEFAULT 1");
        }
Esempio n. 5
0
        public void CanAlterDefaultConstraintForCustomSchemaWithValueAsDefault()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.SchemaName = "USER";

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE \"USER\".\"TestTable1\" MODIFY \"TestColumn1\" DEFAULT 1");
        }
Esempio n. 6
0
        public void CanAlterDefaultConstraintWithDefaultSystemMethodCurrentUser()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.CurrentUser;

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE \"TestTable1\" MODIFY \"TestColumn1\" DEFAULT USER");
        }
Esempio n. 7
0
        public void CanAlterDefaultConstraintWithDefaultSystemMethodCurrentDateTime()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.CurrentDateTime;

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE TestTable1 MODIFY TestColumn1 DEFAULT LOCALTIMESTAMP");
        }
Esempio n. 8
0
        public void CanAlterDefaultConstraintWithDefaultSystemMethodNewGuid()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.NewGuid;

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE TestTable1 MODIFY TestColumn1 DEFAULT sys_guid()");
        }
Esempio n. 9
0
        public void CanAlterDefaultConstraintWithStringValueAsDefault()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = "1";

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE TestTable1 MODIFY TestColumn1 DEFAULT '1'");
        }
Esempio n. 10
0
        public void CanAlterDefaultConstraintToCurrentTimestamp()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.CurrentDateTime;

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE `TestTable1` ALTER `TestColumn1` SET DEFAULT CURRENT_TIMESTAMP");
        }
Esempio n. 11
0
        public void CanAlterDefaultConstraintForCustomSchemaWithDefaultSystemMethodCurrentDateTime()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.CurrentDateTime;
            expression.SchemaName   = "USER";

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE \"USER\".\"TestTable1\" MODIFY \"TestColumn1\" DEFAULT LOCALTIMESTAMP");
        }
Esempio n. 12
0
        public void CanAlterDefaultConstraintForCustomSchemaWithDefaultSystemMethodCurrentUser()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.SchemaName   = "USER";
            expression.DefaultValue = SystemMethods.CurrentUser;

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE USER.TestTable1 MODIFY TestColumn1 DEFAULT USER");
        }
Esempio n. 13
0
        public void CanAlterDefaultConstraintForCustomSchemaWithDefaultSystemMethodNewGuid()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.NewGuid;
            expression.SchemaName   = "USER";

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE \"USER\".\"TestTable1\" MODIFY \"TestColumn1\" DEFAULT sys_guid()");
        }
Esempio n. 14
0
        public void CanAlterDefaultConstraintToCurrentDate()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.CurrentDateTime;
            expression.SchemaName   = "TestSchema";

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE TestSchema.TestTable1 ALTER COLUMN TestColumn1 SET DEFAULT CURRENT_TIMESTAMP");
        }
Esempio n. 15
0
        public void CanAlterDefaultConstraintToCurrentUtcDateTime()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.CurrentUTCDateTime;
            expression.SchemaName   = "TestSchema";

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE \"TestSchema\".\"TestTable1\" ALTER \"TestColumn1\" DROP DEFAULT, ALTER \"TestColumn1\" SET DEFAULT (now() at time zone 'UTC');");
        }
Esempio n. 16
0
        public void CanAlterDefaultConstraintToNewGuid()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.NewGuid;
            expression.SchemaName   = "TestSchema";

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE \"TestSchema\".\"TestTable1\" ALTER \"TestColumn1\" DROP DEFAULT, ALTER \"TestColumn1\" SET DEFAULT uuid_generate_v4();");
        }
        public void CanAlterDefaultConstraintToCurrentDate()
        {
            Assert.Ignore("Hana support change default value with type like bellow");

            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.CurrentDateTime;
            expression.SchemaName   = "TestSchema";

            var result = Generator.Generate(expression);

            result.ShouldBe("ALTER TABLE \"TestTable1\" ALTER (\"TestColumn1\" NVARCHAR(255) DEFAULT CURRENT_TIMESTAMP)");
        }
Esempio n. 18
0
        public void CanAlterDefaultConstraintWithNewGuidAsDefault()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            expression.DefaultValue = SystemMethods.NewGuid;

            var expected = "ALTER TABLE [dbo].[TestTable1] ALTER [TestColumn1] DROP DEFAULT;" + Environment.NewLine +
                           "-- create alter table command to create new default constraint as string and run it" + Environment.NewLine +
                           "ALTER TABLE [dbo].[TestTable1] ALTER [TestColumn1] DEFAULT NEWID();";

            var result = Generator.Generate(expression);

            result.ShouldBe(expected);
        }
Esempio n. 19
0
        public void AlterDefaultConstraintThrowsNotSupportedException()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            Assert.Throws <DatabaseOperationNotSupportedException>(() => Generator.Generate(expression));
        }
        public void AlterDefaultConstraintThrowsNotSupportedException()
        {
            var expression = GeneratorTestHelper.GetAlterDefaultConstraintExpression();

            generator.Generate(expression);
        }