Exemplo n.º 1
0
 public override SQLScriptList ToSqlDiff()
 {
     try
     {
         var list = new SQLScriptList();
         if (Status == Enums.ObjectStatusType.DropStatus)
         {
             if (!HasAnotherUDTClass())
             {
                 list.Add(Drop());
             }
         }
         if (HasState(Enums.ObjectStatusType.CreateStatus))
         {
             list.Add(Create());
         }
         if (Status == Enums.ObjectStatusType.AlterStatus)
         {
             if (Default.Status == Enums.ObjectStatusType.CreateStatus)
             {
                 list.Add(Default.ToSQLAddBind(), 0, Enums.ScripActionType.AddUserDataType);
             }
             if (Default.Status == Enums.ObjectStatusType.DropStatus)
             {
                 list.Add(Default.ToSQLAddUnBind(), 0, Enums.ScripActionType.UnbindRuleType);
             }
             if (Rule.Status == Enums.ObjectStatusType.CreateStatus)
             {
                 list.Add(Rule.ToSQLAddBind(), 0, Enums.ScripActionType.AddUserDataType);
             }
             if (Rule.Status == Enums.ObjectStatusType.DropStatus)
             {
                 list.Add(Rule.ToSQLAddUnBind(), 0, Enums.ScripActionType.UnbindRuleType);
             }
         }
         if (Status == Enums.ObjectStatusType.RebuildStatus)
         {
             list.AddRange(ToSQLChangeColumns());
             if (!GetWasInsertInDiffList(Enums.ScripActionType.DropUserDataType))
             {
                 list.Add(ToSqlDrop() + ToSql(), 0, Enums.ScripActionType.AddUserDataType);
             }
             else
             {
                 list.Add(Create());
             }
         }
         if (HasState(Enums.ObjectStatusType.DropOlderStatus))
         {
             list.Add(SQLDropOlder(), 0, Enums.ScripActionType.AddUserDataType);
         }
         return(list);
     }
     catch (Exception ex)
     {
         _logger.ErrorException(ex.Message, ex);
         return(null);
     }
 }