Exemplo n.º 1
0
        protected override string CreateCreateForeginKeyQuery(MetaComparisonTableGroup tableGroup,
                                                              MetaComparisonForeignKeyGroup foreignKeyGroup)
        {
            var requiredTable  = (MetaTable)tableGroup.RequiredItem;
            var metaForeignKey = (MetaForeignKey)foreignKeyGroup.RequiredItem;

            var sb = new StringBuilder();

            sb.Append("ALTER TABLE [");
            sb.Append(requiredTable.Name);
            sb.Append("] ADD CONSTRAINT ");
            sb.Append(metaForeignKey.Name);
            sb.Append(" FOREIGN KEY ");

            sb.Append(" ( ");
            IEnumerator <MetaForeignKeyColumnMapping> enumerator = metaForeignKey.ColumnMappings.GetEnumerator();

            enumerator.Reset();

            int i = 0;

            while (enumerator.MoveNext())
            {
                MetaForeignKeyColumnMapping mapping = enumerator.Current;
                if (i > 0)
                {
                    sb.Append(" , ");
                }
                sb.Append(mapping.FromColumn);
                i++;
            }
            sb.Append(" ) ");

            sb.Append(" REFERENCES ");
            sb.Append(metaForeignKey.ToTable);

            sb.Append(" ( ");
            enumerator = metaForeignKey.ColumnMappings.GetEnumerator();
            enumerator.Reset();
            i = 0;
            while (enumerator.MoveNext())
            {
                MetaForeignKeyColumnMapping mapping = enumerator.Current;
                if (i > 0)
                {
                    sb.Append(" , ");
                }
                sb.Append(mapping.ToColumn);
                i++;
            }
            sb.Append(" ) ");
            sb.Append(" ON DELETE ").Append(metaForeignKey.DeleteRule);
            if (metaForeignKey.UpdateRule != ReferentialRuleType.Restrict)
            {
                sb.Append(" ON UPDATE ").Append(metaForeignKey.UpdateRule);
            }

            return(sb.ToString());
        }
Exemplo n.º 2
0
        protected override string CreateDropForeignKeyQuery(MetaComparisonTableGroup tableGroup,
                                                            MetaComparisonForeignKeyGroup foreignKeyGroup)
        {
            var requiredTable  = (MetaTable)tableGroup.RequiredItem;
            var metaForeignKey = (MetaForeignKey)foreignKeyGroup.RequiredItem;

            var sb = new StringBuilder();

            sb.Append("ALTER TABLE [");
            sb.Append(requiredTable.Name);
            sb.Append("] DROP CONSTRAINT ");
            sb.Append(metaForeignKey.ToTable);
            return(sb.ToString());
        }
Exemplo n.º 3
0
        protected override string CreateDropForeignKeyQuery(MetaComparisonTableGroup tableGroup
                                                            , MetaComparisonForeignKeyGroup foreignKeyGroup)
        {
            var requiredTable  = (MetaTable)tableGroup.ExistingItem;
            var metaForeignKey = (MetaColumn)foreignKeyGroup.RequiredItem;

            var sb = new StringBuilder();

            sb.Append("ALTER TABLE ");
            sb.Append(requiredTable.Name);
            sb.Append(" DROP FOREIGN KEY ");
            sb.Append(metaForeignKey.Name);
            return(sb.ToString());
        }
Exemplo n.º 4
0
 protected abstract string CreateDropForeignKeyQuery(MetaComparisonTableGroup tableGroup, MetaComparisonForeignKeyGroup foreignKeyGroup);
Exemplo n.º 5
0
 protected override string CreateDropForeignKeyQuery(MetaComparisonTableGroup tableGroup,
                                                     MetaComparisonForeignKeyGroup foreignKeyGroup)
 {
     return(null);
 }