コード例 #1
0
        public void Test_Format_Create_Table_With_Table_Constraints()
        {
            var columnDefinitions = new []
            {
                new SqlColumnDefinitionExpression("Column1", new SqlTypeExpression("INTEGER"), new List <Expression> {
                    new SqlSimpleConstraintExpression(SqlSimpleConstraint.Unique), new SqlReferencesColumnExpression(new SqlTableExpression("Table2"), SqlColumnReferenceDeferrability.InitiallyDeferred, new [] { "Id" }, SqlColumnReferenceAction.NoAction, SqlColumnReferenceAction.SetNull)
                })
            };

            var constraints = new Expression[]
            {
                new SqlSimpleConstraintExpression(SqlSimpleConstraint.Unique, new[] { "Column1" }),
                new SqlForeignKeyConstraintExpression("fkc", new [] { "Column1" }, new SqlReferencesColumnExpression(new SqlTableExpression("Table2"), SqlColumnReferenceDeferrability.InitiallyDeferred, new [] { "Id" }, SqlColumnReferenceAction.NoAction, SqlColumnReferenceAction.NoAction))
            };

            var createTableExpression = new SqlCreateTableExpression(new SqlTableExpression("Table1"), false, columnDefinitions, constraints);

            var formatter = new Sql92QueryFormatter();

            Console.WriteLine(formatter.Format(createTableExpression).CommandText);
        }
コード例 #2
0
        public void Test_Format_Create_Table_With_Table_Constraints()
        {
            var columnDefinitions = new []
            {
                new SqlColumnDefinitionExpression("Column1", new SqlTypeExpression("INTEGER"), new List <SqlConstraintExpression> {
                    new SqlConstraintExpression(ConstraintType.Unique), new SqlConstraintExpression(new SqlReferencesExpression(new SqlTableExpression("Table2"), SqlColumnReferenceDeferrability.InitiallyDeferred, new [] { "Id" }, SqlColumnReferenceAction.NoAction, SqlColumnReferenceAction.SetNull))
                })
            };

            var constraints = new []
            {
                new SqlConstraintExpression(ConstraintType.Unique),
                new SqlConstraintExpression(new SqlReferencesExpression(new SqlTableExpression("Table2"), SqlColumnReferenceDeferrability.InitiallyDeferred, new [] { "Id" }, SqlColumnReferenceAction.NoAction, SqlColumnReferenceAction.NoAction), columnNames: new [] { "Column1" }, constraintName: "fck")
            };

            var createTableExpression = new SqlCreateTableExpression(new SqlTableExpression("Table1"), false, columnDefinitions.ToReadOnlyCollection(), constraints.ToReadOnlyCollection(), null);

            var formatter = new Sql92QueryFormatter();

            Console.WriteLine(formatter.Format(createTableExpression).CommandText);
        }