示例#1
0
 public static TableTriggers GenerateDiferences(TableTriggers CamposOrigen, TableTriggers CamposDestino)
 {
     foreach (TableTrigger node in CamposDestino)
     {
         if (!CamposOrigen.Find(node.FullName))
         {
             TableTrigger newNode = node.Clone(CamposOrigen.Parent);
             newNode.Status = StatusEnum.ObjectStatusType.CreateStatus;
             CamposOrigen.Add(newNode);
         }
         else
         {
             if (!TableTrigger.Compare(node, CamposOrigen[node.FullName]))
             {
                 TableTrigger newNode = node.Clone(CamposOrigen.Parent);
                 newNode.Status = StatusEnum.ObjectStatusType.AlterStatus;
                 CamposOrigen[node.FullName] = newNode;
             }
         }
     }
     foreach (TableTrigger node in CamposOrigen)
     {
         if (!CamposDestino.Find(node.FullName))
         {
             node.Status = StatusEnum.ObjectStatusType.DropStatus;
         }
     }
     return(CamposOrigen);
 }
示例#2
0
 public TableTriggers GetTriggers(Table table)
 {
     if (table != null)
     {
         TableTriggers triggers = new TableTriggers(table);
         using (MySqlConnection conn = new MySqlConnection(connectioString))
         {
             conn.Open();
             using (MySqlCommand command = new MySqlCommand(GetSQLTrigger(table), conn))
             {
                 using (MySqlDataReader reader = command.ExecuteReader())
                 {
                     while (reader.Read())
                     {
                         TableTrigger trigger = new TableTrigger(table);
                         trigger.Id           = triggers.Count + 1;
                         trigger.Name         = reader["TRIGGER_NAME"].ToString();
                         trigger.Manipulation = reader["EVENT_MANIPULATION"].ToString();
                         trigger.Mode         = reader["SQL_MODE"].ToString();
                         trigger.Text         = reader["ACTION_STATEMENT"].ToString();
                         trigger.Timing       = reader["ACTION_TIMING"].ToString();
                         triggers.Add(trigger);
                     }
                 }
             }
         }
         return(triggers);
     }
     else
     {
         throw new ArgumentNullException("table");
     }
 }
示例#3
0
        public void FillSource()
        {
            var TempTableTriggers = new TableTriggers();
            var TempSource        = new Source("My Source");

            _ = TempSource.AddTable("Table A", "dbo");
            var ConstraintsToAdd = new List <dynamic>
            {
                new Dynamo(new
                {
                    Table      = "Table A",
                    Name       = "Trigger A",
                    Type       = 1,
                    Definition = "Definition A"
                })
            };

            TempTableTriggers.FillSource(ConstraintsToAdd, TempSource);
            var TempTable2 = TempSource.Tables[0];
            var Trigger    = TempTable2.Triggers[0];

            Assert.Equal("Trigger A", Trigger.Name);
            Assert.Equal("Definition A", Trigger.Definition);
            Assert.Equal(TriggerType.Insert, Trigger.Type);
        }
示例#4
0
        public void Creation()
        {
            var TempTableTriggers = new TableTriggers();

            Assert.NotNull(TempTableTriggers);
            Assert.Equal(30, TempTableTriggers.Order);
        }
示例#5
0
 public TableTriggers GenerateDiferences(TableTriggers CamposOrigen, TableTriggers CamposDestino)
 {
     foreach (TableTrigger node in CamposDestino)
     {
         if (!CamposOrigen.Find(node.Name))
         {
             node.Status = StatusEnum.ObjectStatusType.CreateStatus;
             CamposOrigen.Add(node);
         }
         else
         {
             if (!node.Text.Equals(CamposOrigen[node.Name].Text))
             {
                 node.Status = StatusEnum.ObjectStatusType.AlterStatus;
                 CamposOrigen[node.Name].Parent.Status = StatusEnum.ObjectStatusType.AlterStatus;
                 CamposOrigen[node.Name] = node;
             }
         }
     }
     foreach (TableTrigger node in CamposOrigen)
     {
         if (!CamposDestino.Find(node.Name))
         {
             node.Status = StatusEnum.ObjectStatusType.DropStatus;
         }
     }
     return(CamposOrigen);
 }
示例#6
0
        public void GetCommand()
        {
            var TempTableTriggers = new TableTriggers();
            var SQLCommand        = TempTableTriggers.GetCommand();

            Assert.Equal(@"SELECT sys.tables.name as [Table],sys.triggers.name as Name,sys.trigger_events.type as Type,
                                                                OBJECT_DEFINITION(sys.triggers.object_id) as Definition
                                                                FROM sys.triggers
                                                                INNER JOIN sys.trigger_events ON sys.triggers.object_id=sys.trigger_events.object_id
                                                                INNER JOIN sys.tables on sys.triggers.parent_id=sys.tables.object_id", SQLCommand);
        }
        public void DropMethods()
        {
            Console.WriteLine("Dropping methods");

            Console.WriteLine("Dropping procedures");
            StoredProcedures.ForEach(p => p.Drop());

            Console.WriteLine("Dropping views");
            Views.ForEach(v => v.Drop());

            Console.WriteLine("Dropping user defined functions");
            UserDefinedFunctions.ForEach(f => f.Drop());

            Console.WriteLine("Dropping triggers");
            TableTriggers.ForEach(t => t.Drop());

            Console.WriteLine("Dropping user defined functions");
            UserDefinedAggregates.ForEach(t => t.Drop());
        }
示例#8
0
        public TableTriggers GetTriggers(Table table)
        {
            ArrayList     names    = new ArrayList();
            string        text     = "";
            TableTriggers triggers = new TableTriggers(table);

            using (SqlConnection conn = new SqlConnection(connectioString))
            {
                conn.Open();
                using (SqlCommand command = new SqlCommand("SELECT SO.name FROM sysobjects SO WHERE type = 'TR' and SO.parent_obj = " + table.Id.ToString() + " ORDER BY SO.name", conn))
                {
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            names.Add(reader["name"].ToString());
                        }
                    }
                }
                for (int index = 0; index < names.Count; index++)
                {
                    using (SqlCommand command = new SqlCommand("sp_helptext '" + names[index] + "'", conn))
                    {
                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            text = "";
                            while (reader.Read())
                            {
                                text += reader["text"].ToString();
                            }
                            TableTrigger trigger = new TableTrigger(table);
                            trigger.Name = names[index].ToString();
                            trigger.Text = text;
                            triggers.Add(trigger);
                        }
                    }
                }
            }
            return(triggers);
        }