因为instead OF DELETE触发器有效地替代了级联功能,所以我需要将FK设置为DELETE NO操作,这是有意义的。当我删除账单时,代替delete将删除相关的BillLine记录,或者根据某些数据条件引发异常。到现在为止还好。但是,因为Bill.BatchId有一个引用Batch.BatchId的ON DELETE级联FK,所以SQL Server不允许我创建触发器。这是我不明白的。为什么我必须在批处理上构建一个INSTEAD OF DEL
为了测试这个问题,我在oracle的sqldeveloper中添加了几个匿名块,它根据密钥是否存在而插入或更新。更新看起来很好,但是在插入新行时,不会插入任何内容。我怀疑这和这张桌子上的扳机有关。它是一个BEFORE EACH ROW触发器类型,它会将数据插入到其他表中。触发器中没有异常处理,因此我猜想它必须失败,但不报告它(在运行脚本时不会出现在sqldeveloper中)。当
有时我会在不是很忙的SQL服务器上得到这样的异常:
Transaction (Process ID 57) was deadlocked on lock resources with another process我试图同时从不同的客户端运行几个查询,但是没有显示出来。当这类问题发生在过程内部或触发器内部时,最好的处理方法是什么?我的意思是,如何重新运行事务?当从触发器调用的过程内部发生异常
当对Condo_assign执行插入操作时,我使用多个触发器向reserveError表中添加条目,以指示错误所在。在他们登录到reserveError之后,我现在正在尝试使用另一个触发器从condo_assign中删除导致问题的记录。基本上,错误的插入应该记录在ReserveError中并从Condo_assign中删除。问题是,虽然我的delete触发器编译并没有引起任何问题,但它似乎没有做任何事情。MID) R