public static void ProcedureTrigger_NoArguments() { var statement = new CreateProcedureTriggerStatement(ObjectName.Parse("APP.trig1"), new ObjectName("tab1"), ObjectName.Parse("APP.proc1"), TriggerEventTime.After, TriggerEventType.Delete); var expected = "CREATE TRIGGER APP.trig1 AFTER DELETE ON tab1 FOR EACH ROW CALL APP.proc1()"; Assert.AreEqual(expected, statement.ToString()); }
public static void ProcedureTrigger_WithArguments() { var args = new InvokeArgument[] { new InvokeArgument("a", SqlExpression.Constant(3)) }; var statement = new CreateProcedureTriggerStatement(ObjectName.Parse("APP.trig1"), new ObjectName("tab1"), ObjectName.Parse("APP.proc1"), args, TriggerEventTime.After, TriggerEventType.Delete) { ReplaceIfExists = true, Status = TriggerStatus.Enabled }; var expected = "CREATE OR REPLACE TRIGGER APP.trig1 AFTER DELETE ON tab1 FOR EACH ROW ENABLE CALL APP.proc1(a => 3)"; Assert.AreEqual(expected, statement.ToString()); }
protected override SqlStatement VisitCreateProcedureTrigger(CreateProcedureTriggerStatement statement) { return(base.VisitCreateProcedureTrigger(statement)); }
protected virtual SqlStatement VisitCreateProcedureTrigger(CreateProcedureTriggerStatement statement) { return new CreateProcedureTriggerStatement(statement.TriggerName, statement.TableName, statement.ProcedureName, statement.ProcedureArguments, statement.EventTime, statement.EventType); }
public void CreateProcedureTrigger() { var procName = ObjectName.Parse("APP.proc1"); var args = new InvokeArgument[] { new InvokeArgument(SqlExpression.Constant(2)), }; var statement = new CreateProcedureTriggerStatement(ObjectName.Parse("APP.trig1"), new ObjectName("tab1"), procName, args, TriggerEventTime.Before, TriggerEventType.Insert | TriggerEventType.Update); SerializeAndAssert(statement, (serialized, deserialized) => { Assert.IsNotNull(deserialized); Assert.IsNotNull(deserialized.TriggerName); Assert.IsNotNull(deserialized.TableName); Assert.IsNotNull(deserialized.ProcedureArguments); Assert.AreEqual("APP.trig1", deserialized.TriggerName.FullName); Assert.AreEqual("tab1", deserialized.TableName.FullName); Assert.AreEqual(TriggerEventTime.Before, deserialized.EventTime); }); }
protected override SqlStatement VisitCreateProcedureTrigger(CreateProcedureTriggerStatement statement) { return base.VisitCreateProcedureTrigger(statement); }
protected virtual SqlStatement VisitCreateProcedureTrigger(CreateProcedureTriggerStatement statement) { return(new CreateProcedureTriggerStatement(statement.TriggerName, statement.TableName, statement.ProcedureName, statement.ProcedureArguments, statement.EventTime, statement.EventType)); }