public PerformDBOperationExpression CreateTriggerExpression(string tableName, string triggerName, bool onBefore, TriggerEvent onEvent, string triggerBody) { tableName = truncator.Truncate(tableName); triggerName = truncator.Truncate(triggerName); CheckTable(tableName); LockTable(tableName); PerformDBOperationExpression createTrigger = new PerformDBOperationExpression(); createTrigger.Operation = (connection, transaction) => { string triggerSql = String.Format(@"CREATE TRIGGER {0} FOR {1} ACTIVE {2} {3} POSITION 0 {4} ", quoter.Quote(triggerName), quoter.Quote(tableName), onBefore ? "before" : "after", onEvent.ToString().ToLower(), triggerBody ); Announcer.Sql(triggerSql); using (var cmd = Factory.CreateCommand(triggerSql, connection, transaction)) { cmd.CommandTimeout = Options.Timeout; cmd.ExecuteNonQuery(); } }; return(createTrigger); }