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); }
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); }