Пример #1
0
        /// <inheritdoc/>
        public override string Translate(SqlCompilerContext context, Constraint constraint, ConstraintSection section)
        {
            switch (section)
            {
            case ConstraintSection.Exit:
                ForeignKey fk = constraint as ForeignKey;
                if (fk != null)
                {
                    if (fk.OnUpdate == ReferentialAction.Cascade)
                    {
                        return(") ON UPDATE CASCADE");
                    }
                    if (fk.OnDelete == ReferentialAction.Cascade)
                    {
                        return(") ON DELETE CASCADE");
                    }
                }
                return(")");

            default:
                return(base.Translate(context, constraint, section));
            }
        }
Пример #2
0
 /// <inheritdoc/>
 public override string Translate(SqlCompilerContext context, Constraint constraint, ConstraintSection section)
 {
     switch (section)
     {
     case ConstraintSection.Exit:
         ForeignKey    fk = constraint as ForeignKey;
         StringBuilder sb = new StringBuilder();
         sb.Append(")");
         if (fk != null)
         {
             if (fk.OnUpdate != ReferentialAction.NoAction)
             {
                 sb.Append(" ON UPDATE " + Translate(fk.OnUpdate));
             }
             if (fk.OnDelete != ReferentialAction.NoAction)
             {
                 sb.Append(" ON DELETE " + Translate(fk.OnDelete));
             }
         }
         return(sb.ToString());
     }
     return(base.Translate(context, constraint, section));
 }
Пример #3
0
        public override string Translate(SqlCompilerContext context, Constraint constraint, ConstraintSection section)
        {
            switch (section)
            {
            case ConstraintSection.Unique:
                if (Driver.ServerInfo.UniqueConstraint.Features.Supports(UniqueConstraintFeatures.Clustered))
                {
                    return(((UniqueConstraint)constraint).IsClustered ? "UNIQUE CLUSTERED (" : "UNIQUE NONCLUSTERED (");
                }
                return("UNIQUE (");

            case ConstraintSection.PrimaryKey:
                if (Driver.ServerInfo.PrimaryKey.Features.Supports(PrimaryKeyConstraintFeatures.Clustered))
                {
                    return(((PrimaryKey)constraint).IsClustered ? "PRIMARY KEY CLUSTERED (" : "PRIMARY KEY NONCLUSTERED (");
                }
                return("PRIMARY KEY (");

            case ConstraintSection.Exit:
                ForeignKey fk = constraint as ForeignKey;
                if (fk != null)
                {
                    StringBuilder builder = new StringBuilder();
                    builder.Append(")");
                    if (fk.OnUpdate != ReferentialAction.Restrict &&
                        fk.OnUpdate != ReferentialAction.NoAction)
                    {
                        builder.Append(" ON UPDATE " + Translate(fk.OnUpdate));
                    }
                    if (fk.OnDelete != ReferentialAction.Restrict &&
                        fk.OnDelete != ReferentialAction.NoAction)
                    {
                        builder.Append(" ON DELETE " + Translate(fk.OnDelete));
                    }
                    return(builder.ToString());
                }
                return(")");

            default:
                return(base.Translate(context, constraint, section));
            }
        }