Пример #1
0
 /// <summary>
 /// SQL-92, page 274<br/>
 /// Note that item 9 on page 276 specifies that if ON DELETE clause is omitted, DB should act as if "NO ACTION" is implicitly stated<br/>
 /// Also, Oracle violates SQL-92 by not supporting explicit ON DELETE NO ACTION clause
 /// </summary>
 private string _DeleteRule(ForeignKeyConstraint.ReferentialAction onDelete)
 {
     if (onDelete == ForeignKeyConstraint.ReferentialAction.NoAction)
     {
         return("");
     }
     return(string.Format(
                "ON DELETE {0}",
                _ReferentialAction(onDelete)
                ));
 }
Пример #2
0
        private static string GetStringRepresentation(ForeignKeyConstraint.ReferentialAction action)
        {
            switch (action)
            {
            case ForeignKeyConstraint.ReferentialAction.NoAction:
                return("NO ACTION");

            case ForeignKeyConstraint.ReferentialAction.Cascade:
                return("CASCADE");

            case ForeignKeyConstraint.ReferentialAction.SetNull:
                return("SET NULL");

            case ForeignKeyConstraint.ReferentialAction.SetDefault:
                return("SET DEFAULT");

            default:
                throw new ApplicationException("Unknown referential action");
            }
        }
Пример #3
0
        private static string GetStringRepresentation(ForeignKeyConstraint.ReferentialAction action)
        {
            switch (action)
            {
            case ForeignKeyConstraint.ReferentialAction.NoAction:
                return("a");

            case ForeignKeyConstraint.ReferentialAction.Cascade:
                return("c");

            case ForeignKeyConstraint.ReferentialAction.SetNull:
                return("n");

            case ForeignKeyConstraint.ReferentialAction.SetDefault:
                return("d");

            case ForeignKeyConstraint.ReferentialAction.Restrict:
                return("r");

            default:
                throw new ApplicationException("Unknown referential action");
            }
        }
Пример #4
0
        /// <summary>
        /// SQL-92, page 274
        /// SQL:1999 added a support for ON DELETE RESTRICT, and both Postgres and Oracle support it in their current versions
        /// </summary>
        private static string _ReferentialAction(ForeignKeyConstraint.ReferentialAction action)
        {
            switch (action)
            {
            case ForeignKeyConstraint.ReferentialAction.NoAction:
                return("NO ACTION");

            case ForeignKeyConstraint.ReferentialAction.Cascade:
                return("CASCADE");

            case ForeignKeyConstraint.ReferentialAction.SetNull:
                return("SET NULL");

            case ForeignKeyConstraint.ReferentialAction.SetDefault:
                return("SET DEFAULT");

            case ForeignKeyConstraint.ReferentialAction.Restrict:
                return("RESTRICT");

            default:
                throw new ApplicationException(string.Format("Unknown action {0}", action));
            }
        }