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); }
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"); } }
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); }
public void Creation() { var TempTableTriggers = new TableTriggers(); Assert.NotNull(TempTableTriggers); Assert.Equal(30, TempTableTriggers.Order); }
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); }
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()); }
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); }