internal DBTableRequiredInitAction(DBTriggerInfo triggerToDelete, DBTable table) : this(table) { if (triggerToDelete == null) { throw new ArgumentNullException("triggerToDelete"); } this.TriggerToDelete = triggerToDelete; }
/// <summary> /// Возвращает существующий триггер таблицы. /// </summary> /// <param name="triggerName">Название триггера.</param> /// <returns></returns> public DBTriggerInfo GetTrigger(string triggerName) { if (string.IsNullOrEmpty(triggerName)) { throw new ArgumentNullException("triggerName"); } //получаем триггер string triggerNameLow = triggerName.ToLower(); DBTriggerInfo trigger = null; if (this.TriggersByName.ContainsKey(triggerNameLow)) { trigger = this.TriggersByName[triggerNameLow]; } return(trigger); }
/// <summary> /// Возвращает существующий триггер существующей таблицы, соответвующий схеме триггера. /// </summary> /// <param name="existingTable">Существующая таблица.</param> /// <returns></returns> private DBTriggerInfo GetExistingTrigger(DBTableInfo existingTable) { if (existingTable == null) { throw new ArgumentNullException("existingTable"); } //получаем триггер по имени DBTriggerInfo existingTrigger = existingTable.GetTrigger(this.Name); //если триггер по полному имени не получили, пытаемся найти триггер относительному имени. if (existingTrigger == null) { foreach (DBTriggerInfo triggerInfo in existingTable.Triggers) { if (triggerInfo.NameLow.EndsWith("_" + this.Schema.RelativeNameLow)) { existingTrigger = triggerInfo; break; } } } return(existingTrigger); }