在 Sybase ASE 中,我有一些审计表和位于主表上的触发器。审计非常简单,每个表都有一个插入/更新/删除触发器,它简单地插入一个相同的行和附加列,该列标记/标记操作是插入、更新还是删除、用户和时间。
现在审计并不重要,所以如果由于任何原因审计触发器失败,那么我们希望避免杀死触发触发器的整个操作。
假设 TableA 具有插入 TableB 的 TriggerA。
我们在 TableA 上执行 StatementX,它触发由 StatmentsY 组成的 TriggerA,TriggerA 在 SatmentsY 上无法插入到 TableB 中。现在正常的模式是回滚 StatementX 和 StatementY 以确保完整性。
有没有办法说在触发器内创建一个保存点,这样如果 StatementY 失败,StatementX 没有中断并且 StatementX 仍然被提交(即只有 StatementY 被回滚)?